我在自定义视图类的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>
答案 0 :(得分:0)
愚蠢的我!问题是我在白色背后绘制黑色矩形。我不记得它充满了黑色,因为我用它来获得白色矩形的边框。因此白色矩形的背景是黑色矩形,这解释了灰色结果。谢谢你的帮助:/