Android LinearLayout 中的多个形状可绘制对象

Android Multiple Shape Drawables In LinearLayout

好的,所以我要做的就是在线性布局中设置四个圆圈。问题是圆圈显示为椭圆形。我尝试不在 circle.xml 文件中设置宽度和高度,我尝试将视图中圆圈的宽度设置为 0dp、wrap_content 和 50dp 以匹配高度,仍然是椭圆形。我试过不在布局中设置 weightSum 得到相同的结果,就像它不需要在那里一样。

线性布局

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:paddingRight="@dimen/xlarge_padding"
    android:paddingLeft="@dimen/xlarge_padding"
    android:orientation="horizontal"
    android:weightSum="4">

circle_blue.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
    android:width="50dp"
    android:height="50dp" />
<solid android:color="@color/fc_blue"/>

我用宽度设置为 0dp、高度设置为 50dp 的视图调用圆圈,layout_weight 设置为 1,背景设置为 circle_xxx.xml。

我是否应该放弃权重设置并使用填充将它们 space 分开?

这是他们在设备上的样子的屏幕截图

https://www.dropbox.com/s/afh8d8m3jrbhrzf/Screenshot_2015-09-27-06-35-07.png?dl=0

这是使用权重的效果。
我猜是因为你在 LinearLayout.

中使用了(无用的)weightSum 属性

现在,权重实际上修改了子视图的尺寸,宽度不再是 50dp,而高度保持 50dp。

这就是为什么您会得到 椭圆形 而不是圆形的原因。