使用自定义颜色在ImageView上添加图像叠加

时间:2016-10-25 11:52:17

标签: java android xml imageview overlay

我有一个ImageView。我想在它上面添加一个透明的叠加层,但我不知道该怎么做。例如,这是我的形象:

enter image description here

我想在其上添加叠加层,所以它看起来像这样: enter image description here

正如你所看到的那样,它上面有一个黑色的叠加层,重点是我想让这个叠加层可以自定义,它的颜色必须改变。我不知道我应该搜索哪些关键字才能找到好的结果。

2 个答案:

答案 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;
            }

installation instructions

或以编程方式

 <?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]

enter image description here

答案 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"/>

我认为这就是你的意思,你必须稍微使用渐变来达到你想要的完全相同的方式