29

Android中的可绘制形状fill_parent用于其大小是否有效?

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

<solid
        android:color="#666666"/>

<size
        android:width="fill_parent"
        android:height="fill_parent"/>
</shape>

编辑

这为ImageButton视图的背景。我希望按钮的图标后面有一个圆圈,但我并不总是知道按钮的大小(每个布局的大小不同)。

4

4 回答 4

13

并不真地。不ShapeDrawable单独使用。如果您浏览ShapeDrawable文档,您会看到(您已经在标签中使用它们)唯一有效的属性是pxdpspinmm

来自文档的引用:android:width="...."

可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)、mm(毫米)以下属性适用:android:height

这是我的猜测,但我怀疑为什么 fill_parent 属性值不起作用是因为ShapeDrawble与文件不同,XML Layout文件没有父容器。

完全忽略该<size.... />属性并在将引用所述 ShapeDrawable 的 Widget 上设置layout_widthand是我怀疑的唯一选项(如果要兑现)。layout_heightfill_parent

于 2013-06-14T15:08:00.823 回答
1

我不知道这在哪个 API 级别生效,但根据 Shape drawable 文档,它将按比例缩放以适合视图。因此,例如,您可以设置 width=1dp 和 height=1dp。见https://stuff.mit.edu/afs/sipb/project/android/docs/guide/topics/resources/drawable-resource.html#Shape

于 2017-05-14T04:57:30.377 回答
0

你打算如何使用这个形状?您可以将其设置为任何视图的 src 或背景,并在“fill_parent”中设置视图高度 - 这是更常用的方式。

于 2013-06-14T15:01:24.693 回答
0

您不能从 xml 文件中执行此操作,但您可以从 java 文件中执行此操作。只需使用

public final void resize (float width, float height)

于 2013-06-14T15:04:13.130 回答