添加透明背景的图像按钮

时间:2012-04-17 15:20:21

标签: android eclipse background transparent imagebutton

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

5 个答案:

答案 0 :(得分:11)

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

android:background="@null"

答案 1 :(得分:1)

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

使用 alpha-masking (Alpha混合的子集,谷歌了解更多信息)。

一个小理论:取决于位图中每个像素的alpha位(半透明位),确定该像素与重写像素的混合程度。考虑到极值,如果alpha为255,则使用覆盖像素而不是覆盖的像素(完全不透明,常规术语);如果alpha为0,则忽略覆盖像素(透明)。对于其中的其他alpha:有混合。

在你的情况下,你 必须使边界的alpha 为零,以实现完全混合。概述geral中的所有步骤:。

  1. 要使用的drawable 不能是JPEG(JPEG不会存储每个像素的alpha值)。转到PNG

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

  2. 如果动态创建图像,则需要使用混合等式(有关Porter和Duff读取材料的详细信息)。

    例如,这是具有透明像素的PNG图像,其具有除字母表本身之外的α0 。 original PNG with alpha blending

  3. aplha blended PNG on colored background

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

答案 2 :(得分:0)

你可以设置

android:background="@null"
XML中的

答案 3 :(得分: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 =“透明”属性为我做了!我希望这也有帮助!

拉​​斯

答案 4 :(得分: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"