Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.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 Android:是否可以使用setColorFilter更改ImageView的背景色?_Java_Android_Kotlin_Imageview_Android Imageview - Fatal编程技术网

Java Android:是否可以使用setColorFilter更改ImageView的背景色?

Java Android:是否可以使用setColorFilter更改ImageView的背景色?,java,android,kotlin,imageview,android-imageview,Java,Android,Kotlin,Imageview,Android Imageview,由于某些原因,我在使用setBackgrouncolor()时无法更改ImageView的背景色。我想要的是将ImageView的backgroundcolor更改为Color.TRANSPARENT。还有别的办法吗 ImageView iv = (ImageView)findViewById(R.id.myImageView); iv.setBackgroundColor(Color.TRANSPARENT); 将my imageView的背景色更改为透明 例如,可以使用setColorFi

由于某些原因,我在使用setBackgrouncolor()时无法更改ImageView的背景色。我想要的是将ImageView的backgroundcolor更改为Color.TRANSPARENT。还有别的办法吗

ImageView iv = (ImageView)findViewById(R.id.myImageView);
iv.setBackgroundColor(Color.TRANSPARENT);
将my imageView的背景色更改为透明

例如,可以使用setColorFilter()来完成吗?比如:(用什么方便的方式?)

还是其他解决方案

谢谢

我的答覆是:

我没有看到我在ImageView叠加中放置的图像中有一个是白色背景而不是透明背景。。。所以,没有虫子。我错了

您的第一个代码块(如下)工作正常。因为ImageView的默认背景色是透明的,所以在大多数情况下甚至不需要

ImageView iv = (ImageView)findViewById(R.id.myImageView);
iv.setBackgroundColor(Color.TRANSPARENT);
我通过在一个空白的活动布局中创建一个ImageView并给它一个红色的背景色来测试这一点。然后,我将您的代码添加到活动的onCreate()方法中,当我运行它时,背景色变得透明,因为白色的布局背景色显示出来。您可以使用以下代码自己进行测试

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/myImageView"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#FF0000" />

</FrameLayout>

我不确定您在透明背景下到底想做什么,但是如果您正在将JPG图像加载到ImageView中,则不支持透明,除非您修改显示它的画布。如果希望在图像中支持透明度,则需要使用SVG或PNG等格式

希望这有帮助

来源

API级别29中不推荐使用此方法。请改用此方法:

setColorFilter(android.graphics.ColorFilter)
使用blendModelColorFilter的实例

例如:

iv.setColorFilter(new BlendModeColorFilter(getResources().getColor(R.color.White), BlendMode.SRC_IN));
如果您想要它的透明度:

imageView.setAlpha(0.5f);
iv.setColorFilter(new BlendModeColorFilter(getResources().getColor(R.color.White), BlendMode.SRC_IN));
imageView.setAlpha(0.5f);