Java Android:是否可以使用setColorFilter更改ImageView的背景色?
由于某些原因,我在使用setBackgrouncolor()时无法更改ImageView的背景色。我想要的是将ImageView的backgroundcolor更改为Color.TRANSPARENT。还有别的办法吗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
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);