2011-07-03 80 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"