2015-05-14 87 views
0

我正在繪製自定義視圖類的onDraw()中的矩形。我希望矩形的顏色透明(例如50%),以便背景能夠透過。自定義視圖類中的Android透明顏色

這裏是我的layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/background" > 

    <MyCustomView 
     android:id="@+id/myCustomView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

的背景設置在LinearLayout正如你看到的。

colors.xml:

<color name="my_tranparent_color">#77FFFFFF</color> 

某處MyCustomViewonDraw()方法:

Paint p = new Paint(); 
p.setColor(getResources().getColor(R.color.my_tranparent_color)); 
canvas.drawRect(new Rect(x, y, x + 20, y + 20), p); 

結果不是透明的,這只是一個樣灰色。

我得到simular的結果,如果我設置onDraw()方法中的alpha值:

p.setAlpha(51); 

<color name="my_tranparent_color">#FFF</color> 
+0

確定嗎? '#8fff'是半透明的白色。 '#8000'是半透明的黑色。 –

+0

#77FFFFFF - 這必須工作....嘗試將其中的阿爾法值從77更改爲更低的值(例如22)以便測試 – NarendraJi

+1

您可以參考下面的鏈接獲取透明度。 http://stackoverflow.com/a/17239853/3374189 –

回答

0

愚蠢的我!問題在於我在白色背後繪製黑色矩形。我不記得它裏面充滿了黑色,因爲我用它來爲白色邊框設置邊框。所以白色的背景是黑色的,這解釋了灰色的結果。感謝您的幫助:/