在我的应用的主Activity XML文件中,我有一个布局,其中包含一些ImageView:
<LinearLayout
..>
<ImageView
.../>
<ImageView
..."/>
</LinearLayout>
到目前为止没有问题。另外,我定义了blob.xml,它只是一个大白色。
blob.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#ff0000"/>
<size android:width="32dp" android:height="32dp"/>
</shape>
当然,我可以像这样将blob放入ImageView中:
<LinearLayout
..>
<ImageView
.../>
<ImageView
..."/>
<ImageView
android:src="@drawable/blob"
.../>
</LinearLayout>
这太棒了。我再也不会为iOS开发了!但是有没有一种方法可以简单地直接把一个“形状”放在布局XML中呢?
<LinearLayout
..>
<ImageView
.../>
<ImageView
..."/>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#ff0000"/>
<size android:width="32dp" android:height="32dp"/>
</shape>
</LinearLayout>
或者...
<LinearLayout
..>
<ImageView
.../>
<ImageView
..."/>
<ImageView
android:src={
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#ff0000"/>
<size android:width="32dp" android:height="32dp"/>
</shape>
}
>
</LinearLayout>
或者类似的东西!
同样,本质上“不使用单独的可绘制/文件”
这是可能的吗?抱歉,很难找到这个,因此,在Android中记录.
1条答案
按热度按时间ghhaqwfi1#
不,(目前)还不能定义内联Drawable
无论如何,如果你觉得自己是受虐狂,你可以在Java中构建一个drawable,然后把它分配给你的视图。
但这,在我看来,会是一种矫枉过正。
我只在被逼的时候才用这个技巧。
更进一步(如果你真的觉得堕落**;)),还有一种方法是制作自定义视图**,然后覆盖onDraw方法,完全自己绘制视图。
我只在必须构建真正新的东西时才使用此技术(即:一些视图在标准视图中不可用),例如旋转旋钮或量规或其它。
有点痛苦,但它给出了它的结果。