2010-02-10 80 views
37

創建一個完全空的Drawable看起來像一個普通的需求,作爲佔位符,初始狀態等,但似乎沒有一個好方法來做到這一點......至少在XML中。有幾個地方是指系統資源@android:drawable/empty,但據我所知(即它不在參考文檔中,並且aapt扼流圈說它找不到資源),這不存在。在Android中創建一個空的Drawable

是否有引用空Drawable的一般方法,或者最終是否爲每個項目創建了一個假的空PNG?

回答

84

對我而言,當我在製作空白繪圖時嘗試使用@android:id/empty時,它不起作用。對我而言,@android:color/transparent就是其中之一。

2

凱,我不知道爲什麼會這樣,但我得到了同樣的問題。我認爲這可能與您正在編譯的Android版本有關?無論如何,我發現只需使用@android:id/empty就可以使用@android:drawable/empty。

3

對我來說,使用@android:drawable/empty會顯示錯誤並阻止編譯。使用@android:id/empty修復了錯誤並讓我編譯,但在Eclipse佈局編輯器中顯示「NullPointerException:null」。我將它改爲@android:color/transparent,現在一切正常。

我還不能投票,否則我會提高Emil的答案。

9

我用一個空ShapeDrawable,即創建一個包含只是<shape/>

3

@null在XML我自己繪製/ empty.xml具有作爲使用null作爲Java中的Drawable同樣的效果。

+0

我希望這會工作,但如果我用它繪製XML和某個設定作爲佈局XML的背景,我得到錯誤「標籤需要'drawable'屬性或子標籤定義可繪製的」 – user3175580 2016-12-02 00:59:39

3
<shape /> 

創建一個空的形狀,爲我做的伎倆。或者創建一個文件empty_drawable.xml,其中包含:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" /> 

因此您可以在其他地方使用它。

你也可以做一個形狀消失時,它在使用的視圖不被創建my_disablable_view.xml啓用:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="true"> 
     <shape android:shape="oval"> 
      <size android:height="10dp" android:width="10dp" /> 
      <solid android:color="@android:color/white" /> 
     </shape> 
    </item> 
    <item android:state_enabled="false"> 
     <shape /> 
    </item> 
</selector>