添加具有透明背景的图像按钮

问题描述 投票:6回答:5

我想在主应用程序屏幕上添加具有透明背景的图像按钮。我已经以GIMP格式创建了图片,并以png格式的透明背景保存了图片,但是当我将它们添加到Eclipse中的android应用中时,它们会以白色背景出现。如何在我的代码中删除它?

android eclipse background transparent imagebutton
5个回答
11
投票

尝试在XML布局中为图像按钮的背景使用null。

android:background="@null"

1
投票

[透明背景通常在photoshop中使用时有效,如果没有,则必须设置图像边框周围像素的alpha位

使用alpha-masking(alpha混合的子集,用谷歌搜索它们以了解更多)。

一点理论:根据位图中每个像素的alpha位(半透明位),确定该像素与被覆盖像素的混合程度。考虑到极端情况,如果alpha为255,则使用覆盖像素而不是覆盖像素(通常为完全不透明)。如果alpha为0,则忽略覆盖像素(transparent)。对于介于两者之间的其他Alpha:有混合。

在您的情况下,必须将边框的Alpha设为,以实现完全融合。概述了geral:。

中的所有步骤
  1. 要使用的绘图对象不能是JPEG(JPEG不存储每个像素的alpha值)。选择PNG

    2.您将需要事先以这种方式创建并保持可绘制的位图(使用google进行alpha混合PNG),以使边框的alpha值为零(例如使用Paint.NET等软件)。

    < [
  2. 如果动态创建图像,则需要使用混合方程式(有关详细信息,请阅读Porter和Duff的资料)。

  3. 例如,这是PNG图片,其透明像素的字母本身不是字母0。“带有Alpha混合功能的原始PNG”

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9qWnFNSC5wbmcifQ==” alt =“ aplha在彩色背景上混合了PNG”>

以上是活动的彩色背景上的Alpha混合PNG。我希望这是您真正想要实现的目标。


0
投票
您可以设置

android:background="@null"

在XML中

0
投票
我在.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”属性为我做到了!希望对您有所帮助!

Russ

0
投票
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"

© www.soinside.com 2019 - 2024. All rights reserved.