我有一个ImageView。我想在它上面添加一个透明的叠加层,但我不知道该怎么做。例如,这是我的形象:
正如你所看到的那样,它上面有一个黑色的叠加层,重点是我想让这个叠加层可以自定义,它的颜色必须改变。我不知道我应该搜索哪些关键字才能找到好的结果。
答案 0 :(得分:2)
public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(),
bmp1.getHeight(), bmp1.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.drawBitmap(bmp2, 0, 0, null);
return bmOverlay;
}
或以编程方式
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp"
android:background="#000000">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp"
android:background="@android:color/holo_red_dark">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp"
android:orientation="vertical"
android:background="@android:color/holo_purple">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
...
">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
...
/>
</LinearLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
或使用FrameLayout
body.validate[T]
答案 1 :(得分:1)
shader.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#00000000"
android:centerColor="#7d000000"
android:endColor="#7d000000"
android:dither="true"
/>
</shape>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/bla2" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/shader"/>
我认为这就是你的意思,你必须稍微使用渐变来达到你想要的完全相同的方式