android 你能把一个DrawableShape或Shape,“直接在”一个布局?

2ic8powd  于 2022-12-28  发布在  Android
关注(0)|答案(1)|浏览(114)

在我的应用的主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中记录.

ghhaqwfi

ghhaqwfi1#

不,(目前)还不能定义内联Drawable
无论如何,如果你觉得自己是受虐狂,你可以在Java中构建一个drawable,然后把它分配给你的视图。
但这,在我看来,会是一种矫枉过正。
我只在被逼的时候才用这个技巧。
更进一步(如果你真的觉得堕落**;)),还有一种方法是制作自定义视图**,然后覆盖onDraw方法,完全自己绘制视图。
我只在必须构建真正新的东西时才使用此技术(即:一些视图在标准视图中不可用),例如旋转旋钮或量规或其它。
有点痛苦,但它给出了它的结果。

相关问题