2011-07-03 84 views
4

在Android小部件上,我如何给背景添加一个颜色,但同时透明?请在截图中查看时钟背景。这是一个黑色,但透明的背景。我如何在自己的小部件上做到这一点?我是否也可以参考系统颜色,例如HTC Sense截图中的颜色?感谢您的任何提示!透明小部件背景?

enter image description here

回答

6

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

或者使用带透明度组件的PNG,因为您的屏幕截图显示使用。

10

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

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

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

99这里表示的α值,将其更改到FF就会产生红色固体,将其改为00将使整个颜色不可见。通过改变它们之间的值来进行测试。

有关详情,请看here

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

7
<?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"