我想在我的主应用程序屏幕上添加具有透明背景的图像按钮。我已经在 GIMP 中创建了图像,并将它们保存为 png 格式的透明背景,但是当我在 Eclipse 中将它们添加到我的 android 应用程序时,它们显示为白色背景。如何在我的代码中删除它?
5 回答
尝试使用 null 作为 xml 布局中图像按钮的背景。
android:background="@null"
透明背景通常在 Photoshop 中使用时有效,如果不是,则必须设置图像边框周围像素的 alpha 位
使用alpha-masking(alpha blending 的子集,谷歌他们了解更多)。
一点理论: 根据位图中每个像素的 alpha 位(半透明位),确定该像素与覆盖像素的混合程度。考虑到极端情况,如果 alpha 为 255,则使用覆盖像素而不是覆盖像素(通常情况下为完全不透明);如果 alpha 为 0,则覆盖像素将被忽略(透明)。对于介于两者之间的其他 alpha:有混合。
在您的情况下,您必须使边框的 alpha为零,以实现完全混合。概述所有步骤:。
- 要使用的可绘制对象不能是 JPEG(JPEG 不存储每个像素的 alpha 值)。去PNG
2.您需要事先以这种方式创建并保持您的位图可绘制(使用 google 进行 alpha 混合 PNG),以使边框的 alpha 值为零(例如使用 Paint.NET 等软件)。
- 如果图像是动态创建的,则需要使用混合方程(有关详细信息,请阅读 Porter 和 Duff 的材料)。
例如,这是具有透明像素的 PNG 图像,其 alpha 0 不同于字母本身
。
以上是 Activity 彩色背景上的 alpha 混合 PNG。我希望这是您真正想要实现的目标。
你可以设置
android:background="@null"
在 XML
我在我的 .aspx 页面上遇到了同样的问题 - 添加一个可以添加到收藏夹功能和从中删除的功能。我知道该图像是具有透明背景的 .gif 图像格式 - 但正如这里提到的,它在 IE9 和 Chrome 的浏览器中显示为白色方形背景。
我添加了这个,它解决了这个问题 - 但你必须确保 .gif 或图像确实也有透明背景:
<asp:ImageButton runat="server" ID="lnkFavorite" BackColor="Transparent" AlternateText="Add Favorite" CommandName="Favorite"
ImageUrl="Images/MakeFavorite_30.png" ToolTip="Click to add to the My Favorite Threads grid."
CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") + ";" + Eval("FavoriteUserID")%>' />
BackColor="Transparent"属性为我做到了!我希望这也有帮助!
拉斯
5年后在这里回答与Android L +的兼容性。
为了在 ImageButton 上使用 PNG(透明)图像作为背景,您应该使用属性background
而不是src
<ImageButton
android:id="@+id/imageProg"
android:layout_width="80dp"
android:layout_height="80dp"
android:onClick="doStuff"
android:background="@drawable/ic_stuff"