透明小部件背景?

时间:2011-07-03 12:46:08

标签: android android-layout android-widget transparency

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

enter image description here

3 个答案:

答案 0 :(得分:11)

您必须为您的资源指定一个Alpha通道(=透明度通道)。

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

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

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

有关详细信息,请查看here

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

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

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

android:background="@android:color/transparent"

答案 2 :(得分:7)

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

或者使用带有透明度组件的png,因为您的屏幕截图似乎可以使用。