自定义视图类中的Android透明色

时间:2015-05-14 11:14:19

标签: android

我在自定义视图类的onDraw()中绘制一个rect。我希望rect的颜色是透明的(例如50%),这样背景就会闪耀。

这是我的layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/background"  >

    <MyCustomView
        android:id="@+id/myCustomView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

如您所见,背景设置在LinearLayout

colors.xml:

<color name="my_tranparent_color">#77FFFFFF</color>

MyCustomView onDraw()方法中的某个地方:

Paint p = new Paint();
p.setColor(getResources().getColor(R.color.my_tranparent_color));
canvas.drawRect(new Rect(x, y, x + 20, y + 20), p);

结果不透明,只是灰色。

如果我在onDraw()方法中设置alpha值,我会得到类似的结果:

p.setAlpha(51);

<color name="my_tranparent_color">#FFF</color>

1 个答案:

答案 0 :(得分:0)

愚蠢的我!问题是我在白色背后绘制黑色矩形。我不记得它充满了黑色,因为我用它来获得白色矩形的边框。因此白色矩形的背景是黑色矩形,这解释了灰色结果。谢谢你的帮助:/