我想在主应用程序屏幕上添加具有透明背景的图像按钮。我已经以GIMP格式创建了图片,并以png格式的透明背景保存了图片,但是当我将它们添加到Eclipse中的android应用中时,它们会以白色背景出现。如何在我的代码中删除它?
尝试在XML布局中为图像按钮的背景使用null。
android:background="@null"
[透明背景通常在photoshop中使用时有效,如果没有,则必须设置图像边框周围像素的alpha位
使用alpha-masking(alpha混合的子集,用谷歌搜索它们以了解更多)。
一点理论:根据位图中每个像素的alpha位(半透明位),确定该像素与被覆盖像素的混合程度。考虑到极端情况,如果alpha为255,则使用覆盖像素而不是覆盖像素(通常为完全不透明)。如果alpha为0,则忽略覆盖像素(transparent)。对于介于两者之间的其他Alpha:有混合。
在您的情况下,将必须将边框的Alpha设为零,以实现完全融合。概述了geral:。
中的所有步骤2.您将需要事先以这种方式创建并保持可绘制的位图(使用google进行alpha混合PNG),以使边框的alpha值为零(例如使用Paint.NET等软件)。
< [如果动态创建图像,则需要使用混合方程式(有关详细信息,请阅读Porter和Duff的资料)。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9qWnFNSC5wbmcifQ==” alt =“ aplha在彩色背景上混合了PNG”>
以上是活动的彩色背景上的Alpha混合PNG。我希望这是您真正想要实现的目标。
android:background="@null"
在XML中
我添加了它,它解决了问题-但您必须确保.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”属性为我做到了!希望对您有所帮助!
Russ
为了在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"