如何从缩放中防止android层可绘制形状(例如圆圈)

我尝试使用XML layer-list drawable创建一个简单的插图.
我有两个形状,一个圆圈和一个矩形
我想要一个不扩展的圆圈.
以下是布局:

ravity="center"
        android:scaleType="center"
        />

这是shape5.xml drawable

layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    stroke android:width="2dp" android:color="@android:color/holo_red_light" />
            oval" android:gravity="center" android:scaleType="center" >
            <stroke android:width="2dp" android:color="@android:color/holo_blue_light" />
            layer-list>

生成的图形如下所示:

很明显,项目android:top可以完成工作,但没有什么能阻止形状缩放.大小宽度不起作用,android:scaleType =“center”也不起作用.

快速查看了LayerDrawable.java实现.看起来像在幕后,从项目属性创建插入.所以我想通过计算那些我可以达到结果,我想要的.这是唯一的方法吗?

更新:

按照这个answer,我知道操纵项目的android:top,android:left等,我可以创建一个虚拟插图,可以根据我的需要扩展我的“形状”.
我查了一遍,这是对的.所以这是一个解决方法.然而,我对它的反直觉感到非常失望.我仍然希望有人能指出我一种简单的方法来禁用缩放.

更新:
根据this Google Android documentation page,设置ImageView scaleType应该已经阻止了缩放.显然在我的情况下,它没有用.缺了点什么.

最佳答案
给你的圆圈绘制相同的高度和宽度,如下所示:

oval" >
    

您放置的高度和宽度值并不重要,重要的是高度=宽度.将它们视为纵横比,您需要一个完美圆的比率,即1:1.

您不必担心确切值的原因是因为drawable将通过scaleType属性进行缩放.

将drawable插入ImageView后,可以设置scaleType以缩放它:

scaleType = fitCenter – > Drawable将与ImageView的大小相同,但将保持完美的圆形!
scaleType = centerInside – > Drawable将是您在参数中指定的高度和宽度
等……

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...