我将背景图像设置为ImageView
,现在我想要更改图像的不透明度,因为我编写此代码来更改ImageView的不透明度,但是当我这样做时它会删除图像视图中的背景图像,所以我的问题是如何在不删除背景图像的情况下更改ImageView的不透明度。
我使用的代码是:
ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setBackgroundResource(R.drawable.theme1_page_header); // Set background image
int opacity = 100; // from 0 to 255
imageView.setBackgroundColor(opacity * 0x1000000); // change opacity of image
答案 0 :(得分:27)
alpha中最重要的部分是值必须为十进制
0 =透明,1 =可见
所以0.5是半途可见
您可以在XML中执行
<ImageView
android:layout_width="30dp"
android:layout_height="35dp"
android:id="@+id/imageView"
android:alpha="0.4" // <----------------- this is the fun part
android:layout_alignParentRight="false"
android:background="@drawable/imagename"
android:layout_alignParentLeft="false"
android:layout_alignParentTop="false"
android:layout_alignWithParentIfMissing="false"
android:layout_marginLeft="100dp"
android:layout_alignParentBottom="false"
android:layout_alignParentStart="false"
android:layout_alignTop="@+id/bar"
android:layout_marginTop="30dp"/>
答案 1 :(得分:11)
您可以使用
imageView.setAlpha(yourValue); // some value 0-255 where 0 is fully transparent and 255 is fully opaque
答案 2 :(得分:5)
ImageView imageView = (ImageView) findViewById(R.id.image_view);
Drawable dPage_header= getResources().getDrawable(R.drawable.theme1_page_header);
// setting the opacity (alpha)
dPage_header.setAlpha(10);
// setting the images on the ImageViews
imageView.setImageDrawable(dPage_header);
答案 3 :(得分:1)
在布局xml中使用此选项可获得不透明度,以及将Android材质图标从黑色变为灰色。 机器人:阿尔法= 0.5
答案 4 :(得分:1)
对于Api&gt; = 16。使用setImageAlpha作为练习因为setAlpha将来会被弃用。 `
ImageView.setAlpha(int)
已经renamed
到ImageView.setImageAlpha(int)
以避免混淆。见Detail Explanation here
答案 5 :(得分:0)
使用imageView.setAlpha(100)
。
如果您使用的是Android 2.3,那么您必须使用九重目录进行零长度动画。
子类ImageView
并覆盖其onDraw()
方法以透明地绘制图像。
实际使用get/setPixel()
修改图像像素。但这会很慢;可能有更快的方法(例如使用renderscript)。
答案 6 :(得分:0)
在Kotlin中,我们可以像这样更改代码中的alpha:
myImageView.alpha = 0.5f
将alpha值更改为0.0f到1f之间的任意值