我有一个不透明的图案(10%不透明度),我需要将它与一些颜色结合起来。
是否可以将背景颜色设置为图像?
答案 0 :(得分:24)
不确定。只需使用LayerListDrawable。
类似的东西:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="#FF00ffff" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/your_tiled_drawable"
android:tileMode="repeat" />
</item>
</layer-list>
将其保存在res/drawables
目录中,并将其用作背景。
可悲的是,如果你的应用程序更复杂,有时候tileMode会因为没有明显的原因而被取消。如果您遇到这种情况,则必须在Java中重新添加切片模式。
我通常仍将其设置为xml,然后执行以下操作:
View v = findViewById(R.id.my_view);
LayerDrawable lld = (LayerDrawable) v.getBackground();
BitmapDrawable tiled = (BitmapDrawable) lld.getDrawable(1);
tiled.setTileModeXY(TileMode.REPEAT, TileMode.REPEAT);
答案 1 :(得分:0)
是
您可以使用ImageView
。设置背景颜色并将半透明图像设置为源。
如果要对布局执行此操作,则扩展该布局并覆盖onDraw(),绘制背景颜色并与半透明图像混合
Paint p = new Paint();
p.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY));