如何在 Android 上使图像透明?

Posted

技术标签:

【中文标题】如何在 Android 上使图像透明?【英文标题】:How can I make an image transparent on Android? 【发布时间】:2011-07-01 23:20:17 【问题描述】:

我使用的是线性布局和框架布局。在线性布局中,我保留一个图像作为背景,在框架布局中,我保留一个 imageView。在那个 imageView 中,我给出了一个图像。

现在我想让第二张图片(即在 imageView 中)透明。我该怎么做?

【问题讨论】:

你需要从代码或xml设置透明吗? 你能告诉我如何设置透明 ***.com/questions/1492554/… 【参考方案1】:

试试这个:

ImageView myImage = (ImageView) findViewById(R.id.myImage);
myImage.setAlpha(127); //value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.

注意setAlpha(int) 已被弃用,取而代之的是 setAlpha(float),其中 0 表示完全透明,1 表示完全不透明。像这样使用它:myImage.setAlpha(0.5f)

【讨论】:

setAlpha(int) 已弃用,取而代之的是 setAlpha(float),其中 0 完全透明,1 完全不透明 myImage.setAlpha(0.5f);【参考方案2】:

android:alpha 在 XML 中执行此操作:

<ImageView
    android:layout_
    android:layout_
    android:src="@drawable/blah"
    android:alpha=".75"/>

【讨论】:

【参考方案3】:

在 ImageView 上设置一个 id 属性:

<ImageView android:id="@+id/myImage"

在您希望隐藏图像的代码中,您需要以下代码。

首先,您需要对 ImageView 的引用:

ImageView myImage = (ImageView) findViewById(R.id.myImage);

然后,将可见性设置为 GONE:

myImage.setVisibility(View.GONE);

如果您想在其他地方有代码使其再次可见,只需以相同方式将其设置为可见:

myImage.setVisibility(View.VISIBLE);

如果您的意思是“完全透明”,则上面的代码有效。如果您的意思是“部分透明”,请使用以下方法:

int alphaAmount = 128; // Some value 0-255 where 0 is fully transparent and 255 is fully opaque
myImage.setAlpha(alphaAmount);

【讨论】:

现在透明度也不起作用。当我将可见性设置为 GONE 时,它的工作方式与不可见 编辑代码示例以支持部分透明。我误解了原来的问题【参考方案4】:

如果您在 XML 文件中,请使用以下内容使您的 imageview 透明!

 android:background="@null" 

【讨论】:

【参考方案5】:

在较新版本的 Android 上(至少在 Android 4.2 (Jelly Bean) 之后),setAlpha(int value) 方法已被弃用。相反,请使用 setAlpha(float value) 方法,该方法采用 0 和 1 之间的浮点数,其中 0 表示完全透明,1 表示不透明。

【讨论】:

【参考方案6】:

由于 setAlpha int 已被弃用,可以使用 setImageAlpha (int)

ImageView img = (ImageView) findViewById(R.id.img_image);
img.setImageAlpha(127); //value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.

【讨论】:

【参考方案7】:

使用setAlpha(float alpha) 设置透明度。如果我在 float 中使用 alpha 值,以下代码对我有用,0 - 1。

0:全透明 0.5 - 50%:透明

1:完全不透明

ImageView imageView = (ImageView) itemView.findViewById(R.id.imageView); imageView.setImageResource(mResources[位置]); imageView.setAlpha(.80f);

【讨论】:

【参考方案8】:

ImageView 类型中的方法setAlpha(int) 已弃用。

代替

image.setImageAlpha(127);
//value: [0-255]. Where 0 is fully transparent and 255 is fully opaque.

【讨论】:

【参考方案9】:

在 XML 中,使用:

android:background="@android:color/transparent"

【讨论】:

【参考方案10】:

Image alpha 将不透明度设置为 ImageView,这会使 Image 变得模糊,请尝试在 ImageView 中添加 tint 属性

 android:tint="#66000000"

也可以通过编程方式完成:

imageView.setColorFilter(R.color.transparent);

您需要在 colors.xml 中定义透明颜色的地方

<color name="transparent">#66000000</color>

【讨论】:

【参考方案11】:

对于 20% 的透明度,这对我有用:

Button bu = (Button)findViewById(R.id.button1);
bu.getBackground().setAlpha(204);

【讨论】:

【参考方案12】:

用途:

ImageView image = (ImageView) findViewById(R.id.image);
image.setAlpha(150); // Value: [0-255]. Where 0 is fully transparent
                     // and 255 is fully opaque. Set the value according
                     // to your choice, and you can also use seekbar to
                     // maintain the transparency.

【讨论】:

以上是关于如何在 Android 上使图像透明?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 上使形状不规则的透明 CALayer 变暗?

如何在android中的图像上放置黑色透明

如何在Android Studio中使图像中的特定颜色透明?

如何在android中为透明png图像添加描边/边框?

如何从图像中选择像素,并减少Android编程中该像素的不透明度

如何在 Swift 上使这段代码异步