2010-02-10 85 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>