Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用自定义颜色在ImageView上添加图像覆盖_Java_Android_Xml_Imageview_Overlay - Fatal编程技术网

Java 使用自定义颜色在ImageView上添加图像覆盖

Java 使用自定义颜色在ImageView上添加图像覆盖,java,android,xml,imageview,overlay,Java,Android,Xml,Imageview,Overlay,我有一个图像视图。我想在上面加一个透明的覆盖层,但我不知道怎么做。例如,这是我的图像: 我想在其上添加覆盖层,使其看起来像这样: 正如你所看到的,它上面有一个黑色的覆盖层,关键是我想让这个覆盖层可以自定义,它的颜色必须改变。我甚至不知道我应该搜索哪些关键字才能找到好结果 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk

我有一个图像视图。我想在上面加一个透明的覆盖层,但我不知道怎么做。例如,这是我的图像:

我想在其上添加覆盖层,使其看起来像这样:

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

   <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
          <bitmap android:src="@drawable/android_red"
            android:gravity="center" />
        </item>
        <item android:top="10dp" android:left="10dp">
          <bitmap android:src="@drawable/android_green"
            android:gravity="center" />
        </item>
        <item android:top="20dp" android:left="20dp">
          <bitmap android:src="@drawable/android_blue"
            android:gravity="center" />
        </item>
或者使用框架布局

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

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


我想这就是你的意思,你必须稍微调整一下梯度,以获得与你想要的完全相同的效果

我不确定你的意思。。。但是,如果将FrameLayout与两个图像视图一起使用。然后第二个将位于第一个之上one@RoeeN谢谢你的回答,事实上我可以有两个ImageView,但是我如何在android中用不同的颜色制作叠加呢?你可以给它一个背景色。并设置alpha级别,这会给你一些着色效果。@RoeeN非常感谢,但它似乎覆盖了我的所有其他图像,正如你在我的问题中看到的,我需要一些东西,比如这里是什么,我想我明白你的意思了。。。我发布了一个答案非常感谢,但事实上我正在使用Glide,因此我似乎必须使用两个seprate ImageView。问题是如何创建具有不同颜色的覆盖层?谢谢。是的,这正是我需要的。我可以通过编程更改着色器颜色吗?从未尝试过。。。您可能可以通过编程来创建它并对其进行更新。请检查此项
<?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"/>