透明小部件背景?

ste*_*wpf 4 transparency android android-widget android-layout

在Android小部件上,如何为背景添加颜色,同时使透明变为透明?请在屏幕截图中查看时钟背景.这是一个黑色但透明的背景.我怎么能在自己的小部件上做到这一点?我可以参考系统颜色,比如HTC Sense的截图吗?谢谢你的提示!

在此输入图像描述

小智 11

您必须为您的资源指定alpha通道(=透明度通道).

如果您在XML res中使用标准颜色(例如,使用colors.xml)来填充背景,则可以通过更改前两个数字来指定alpha.示例格式:

<color name="transparent_red">#99FF0000</color>
Run Code Online (Sandbox Code Playgroud)

这里的99表示alpha值,将其更改为FF将产生纯红色,将其更改为00将使整个颜色不可见.只需通过更改中间值来测试它.

有关详细信息,请查看此处.

如果你想使用实际的图片/位图,就像感觉一样,你必须创建指定了alpha通道的PNG图像.这取决于您使用哪个软件来创建位图.我推荐像Illustrator或Inkscape这样的矢量图形程序,当你指定颜色时它们有一个alpha值.在那里创建后,将图像导出为PNG并将其添加到您的应用程序资源中.


Sab*_*viş 9

<?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>
Run Code Online (Sandbox Code Playgroud)

只需将布局背景设置为透明即可.添加以下代码.这适用于我和它的小部件.

android:background="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)


mah*_*mah 7

android:background="#TTRRGGBB - RR,GG,BB是(十六进制)红色,绿色,蓝色组件,TT是透明组件.使用TT = 80(十六进制)表示50%透明度,FF表示不透明,00表示完全透明.

或者使用带有透明度组件的png,因为您的屏幕截图似乎正在使用.