Прозрачный фон виджета? - PullRequest
4 голосов
/ 03 июля 2011

На виджетах Android, как я могу дать цвет фона, но в то же время сделать прозрачным?Пожалуйста, смотрите фон на часах на скриншоте.Это черный, но прозрачный фон.Как я могу сделать это на моем собственном виджете?Можно ли также ссылаться на системные цвета, как на скриншоте с HTC Sense?Спасибо за любую подсказку!

enter image description here

Ответы [ 3 ]

11 голосов
/ 03 июля 2011

Вы должны указать альфа-канал (= канал прозрачности) для своих ресурсов.

Если вы используете стандартный цвет в своем XML-решении (например, из вашего colors.xml) для заполнения фона, Вы можете указать альфа, изменив первые два числа. Пример формата:

<color name="transparent_red">#99FF0000</color>

Здесь 99 указывает альфа-значение, измените его на FF, чтобы получить сплошной красный, изменение на 00 сделает весь цвет невидимым. Просто проверьте это, изменив значение между ними.

Подробнее об этом см. здесь .

Если вы хотите использовать реальное изображение / растровое изображение, как в смысле, Вы должны создавать PNG-изображения с указанным альфа-каналом. Это зависит от того, какое программное обеспечение вы используете для создания своих растровых изображений. Для этого я рекомендовал программы векторной графики, такие как Illustrator или Inkscape, у них есть альфа-значение, когда вы указываете цвет. После того, как вы создали его там, экспортируйте изображение в формате PNG и добавьте его в ресурсы своего приложения.

9 голосов
/ 10 августа 2014
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@android:color/transparent">

    <ImageView
        android:id="@+id/widget_image"
        android:layout_width="110sp"
        android:layout_height="110sp"
        android:layout_gravity="center"
        android:src="@drawable/appicon" />
</LinearLayout>

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

android:background="@android:color/transparent"
7 голосов
/ 03 июля 2011

android:background="#TTRRGGBB - RR, GG, BB - (шестнадцатеричный) красный, зеленый, синий компоненты, а TT - компонент прозрачности. Используйте TT = 80 (hex) для прозрачности 50%, FF для прозрачности нет, 00 для полностью прозрачной.

Или используйте png с компонентами прозрачности, как показано на скриншоте.

...