使用XML创建重力居中的圆形可绘制对象

4

我正在尝试让drawable看起来像这样:

gravity right circle

我使用了以下xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:gravity="end">
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval"
        >
        <size
            android:width="@dimen/bullet_size"
            android:height="@dimen/bullet_size"
            />
        <solid android:color="@color/colorPrimary"/>
    </shape>
</item>
</layer-list>

但是得到了这个:

result

有什么想法是什么出了问题?

我正在使用重力右圆形可绘制对象,如下所示:

textView.setBackgroundResources(R.drawable.right_shspe);

你能提供布局文件的XML吗?你可能使用了错误的参数ImageView - VSB
我正在使用XML drawable作为背景。 - DimDim
请编辑包含您的形状的XML布局的问题和代码。 - VSB
您可以使用ImageView并将形状作为其android:src属性。这样,形状的纵横比将不会改变,并保持您定义的样子。 - VSB
2个回答

2

我认为您应该将持有椭圆形的项目垂直居中,这样一切都会没问题。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:gravity="end|center_vertical">
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval"
        >
        <size
            android:width="@dimen/bullet_size"
            android:height="@dimen/bullet_size"
            />
        <solid android:color="@color/colorPrimary"/>
    </shape>
</item>
</layer-list>

完成了!非常感谢! - DimDim

1
根据需要更改宽度和高度,即可修复形状。

宽度和高度的值相同,为10dp。 - DimDim
可能会出现一些问题,请尝试重新构建您的项目。 - Zaid
我的正常工作。一个圆圈被显示。你的项目有问题。 - Zaid
检查维度文件。 - Zaid
<dimen name="bullet_size">10dp</dimen> - DimDim
尝试硬编码数值。 - Zaid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接