1

私のレイアウトファイルのスニペットがあります: layout_1背景あり#e9e9e9

<LinearLayout android:id="@+id/layout_1"
          android:layout_width="wrap_content"
          android:background="#e9e9e9"
          android:layout_height="wrap_content"
    >
    ...
    <com.test.android.CustomView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    ...
</LinerLayout>

<LinearLayout android:id="@+id/layout_2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
    >
    ...
    <com.test.android.CustomView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    ...
</LinerLayout>

私のカスタム ドローアブルと CustomView クラスのスニペットがあります。上のものは下のものを部分的に覆っています。

public class NodeDrawable extends Drawable {

  //...

  protected ShapeDrawable shapeDrawableBottom;
  protected ShapeDrawable shapeDrawableTop;

  @Override
  public void draw(Canvas canvas) {
          Paint circlePaint = shapeDrawableBottom.getPaint();
          circlePaint.setColor(DEFAULT_COLOR_BOTTOM);//DEFAULT_COLOR_BOTTOM = 0xe2f5ff
          circlePaint.setFlags(Paint.ANTI_ALIAS_FLAG);
          shapeDrawableBottom.setBounds();
          shapeDrawableBottom.draw(canvas);

          Paint circlePaint = shapeDrawableTop.getPaint();
          circlePaint.setColor(DEFAULT_COLOR_TOP);//DEFAULT_COLOR_TOP = 0x1f8fd2
          circlePaint.setFlags(Paint.ANTI_ALIAS_FLAG);
          shapeDrawableBottom.setBounds();
          shapeDrawableTop.draw(canvas);
  }

  //...
}


public class CustomView extends View {

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        buildDrawables();
    }

    private void buildDrawables() {
        mCustomDrawable = new CustomDrawable();
    }

}

ただし、レイアウトの背景は下の背景に影響し、下の背景は上の背景にも影響します。

RGBA のアルファ値をどうすれば正しい RGB カラーで表示されるようにするにはどうすればよいですか? 色をアルファ値 1 の 0xe2f5ff に設定しようとしましたが、レイアウトの背景がまだ下の色に影響していると思います...

4

1 に答える 1

0
circlePaint.setColor(Color.parseColor("#00FFFFFF"));

最初の 2 桁は Alpha です。00~FF

于 2013-10-17T17:02:29.397 に答える