Добавить кнопку изображения с прозрачным фоном

Я хочу добавить кнопки изображения на моем основном экране приложения, которые имеют прозрачный фон. Я создал изображения в GIMP и сохранил их с прозрачным фоном в формате png, но когда я добавляю их в свое приложение Android в Eclipse, они появляются на белом фоне. Как удалить это в моем коде?

Попробуйте использовать значение null для фона для кнопки изображения в макете xml.

android:background="@null" 

Прозрачный фон обычно работает при использовании в Photoshop, если это не так, вам нужно установить альфа-биты пикселей вокруг границы вашего изображения

Использовать альфа-маскирование (подмножество альфа-смешивания, google, чтобы узнать больше).

Небольшая теория: в зависимости от альфа-бит для каждого пикселя в вашем битовом изображении (биты прозрачности) определяется степень смешивания этого пикселя с переписанным пикселем. Принимая во внимание экстремумы, если альфа 255, вместо переписанного один используется переписывающий пиксель ( полностью непрозрачный , в регулярных выражениях); Если альфа равна 0, то переписывание пикселя просто игнорируется ( прозрачно ). Для других альфа между ними: происходит смешение.

В вашем случае вам нужно будет сделать альфа границы нулевой , чтобы достичь полной смеси. Обобщая все шаги в geral :.

  1. Выбираемый для использования не может быть JPEG (JPEG не сохраняет значения альфа на пиксель). Перейти к PNG

    2. Вам нужно будет создать и сохранить свой растровый рисунок таким образом заранее (используйте Google для альфа-смешивания PNG), чтобы границы имели нулевое альфа-значение (используйте программное обеспечение, такое как Paint.NET для ex).

  2. Если изображения создаются динамически, вам нужно будет использовать уравнение смешивания (подробности см. В материалах Портера и Даффа).

    Например, это PNG-изображение с прозрачными пикселями, имеющими альфа-0, отличное от самого алфавита
    , Оригинальный PNG с альфа-смешиванием

Aplha blended PNG на цветном фоне

Выше – альфа-смешанный PNG на цветном фоне Activity. Надеюсь, это то, чего вы действительно хотите достичь.

Вы можете просто установить

 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" сделал это для меня! Надеюсь, это тоже поможет!

Russ