如何更改图像的不透明度。

时间:2012-12-11 11:20:47

标签: android

我将背景图像设置为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

7 个答案:

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

请参阅documentation

答案 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)已经renamedImageView.setImageAlpha(int)以避免混淆。见Detail Explanation here

答案 5 :(得分:0)

选项1

使用imageView.setAlpha(100)

如果您使用的是Android 2.3,那么您必须使用九重目录进行零长度动画。

选项2

子类ImageView并覆盖其onDraw()方法以透明地绘制图像。

选项3

实际使用get/setPixel()修改图像像素。但这会很慢;可能有更快的方法(例如使用renderscript)。

答案 6 :(得分:0)

在Kotlin中,我们可以像这样更改代码中的alpha:

myImageView.alpha = 0.5f

将alpha值更改为0.0f到1f之间的任意值