我创建了自己的可绘制对象,我将其设置为图像按钮的背景。 (描述here)
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#A7BF1D"/> </shape>
我希望这些在屏幕一侧垂直间隔,所以我想使用android:layout_weight来实现这一点。 (描述here)
<LinearLayout
android:id="@+id/left_bar"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="8">
<Button
android:id="@+id/btnCall"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"
android:background="@drawable/btn_circle"
android:text="Call"
android:textSize="12sp" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"></Space>
<Button
android:id="@+id/btnSpeak"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"
android:background="@drawable/btn_circle"
android:text="Speak"
android:textSize="12sp" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"></Space>
<Button
android:id="@+id/btnRecordedMessage"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"
android:background="@drawable/btn_circle"
android:text="Recorded Message"
android:textSize="12sp" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"></Space>
<Button
android:id="@+id/btnSelectAll"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"
android:background="@drawable/btn_circle"
android:text="Select All Units"
android:textSize="12sp" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"></Space>
<Button
android:id="@+id/btnDeselectUnits"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"
android:background="@drawable/btn_circle"
android:text="Deselect Units"
android:textSize="12sp" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"></Space>
<Button
android:id="@+id/btnAnswer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="1"
android:background="@drawable/btn_circle"
android:text="Answer"
android:textSize="12sp" />
</LinearLayout>
我做什么似乎无法让它们在任何屏幕尺寸上均匀分开,更不用说为每个屏幕尺寸进行缩放。我认为我的问题是我必须指定身高和数量。形成圆圈的宽度,但是一旦我这样做就会与layout_weight混淆(因为缺少更好的术语)'硬编码'。
我认为可以有一个6个圆形按钮的垂直布局,在屏幕上均匀间隔,但我无法弄清楚如何?我也试过没有<Space>
,而是在<Button>
添加了填充。
答案 0 :(得分:0)
好。例如,LinearLayouts子元素中的所有layout_widths都设置为match_parent。在第一个孩子渲染之后,那里将没有其他任何空间,因为它将占用所有空间。
其次,我强烈建议不要使用所有标签。相反,我只会为你的按钮设置填充(或边距)。
答案 1 :(得分:0)
如果我理解正确,您希望View
内的LinearLayout
与weight
间隔开。如果是,则android:layout_weight
应位于每个View
而不是LinearLayout
。 LinearLayout
会有android:weightSum
,而View
每个weight
都会有weightSum
,但如果你想要它们,你甚至不需要<LinearLayout
android:id="@+id/left_bar"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="8"> // Try removing this and add weights to your views
间隔均匀。
{{1}}
我不知道这是否能解决您的问题,但我会从那个
开始答案 2 :(得分:0)
我遇到了同样的问题。我必须在水平LinearLayout中有4个圆形按钮,间距相等。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="10dp" >
<Button
android:id="@+id/btn1"
style="@style/BotonCircular"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:background="@drawable/boton_circulo_negro" />
<View
android:layout_weight="0.033"
android:layout_width="0dp"
android:layout_height="match_parent"
/>
<Button
android:id="@+id/btn2"
style="@style/BotonCircular"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:background="@drawable/boton_circulo_negro" />
<View
android:layout_weight="0.033"
android:layout_width="0dp"
android:layout_height="match_parent"
/>
<Button
android:id="@+id/btn3"
style="@style/BotonCircular"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:background="@drawable/boton_circulo_negro" />
<View
android:layout_weight="0.033"
android:layout_width="0dp"
android:layout_height="match_parent"
/>
<Button
android:id="@+id/btn4"
style="@style/BotonCircular"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.2"
android:background="@drawable/boton_circulo_negro" />
</LinearLayout>
为了使它们具有相同的高度,我将此代码放在onCreate on my Activity
中final Button btn1 = (Button) findViewById(R.id.btn1);
final Button btn2 = (Button) findViewById(R.id.btn2);
final Button btn3 = (Button) findViewById(R.id.btn3);
final Button btn4 = (Button) findViewById(R.id.btn4);
ViewTreeObserver vto = btn1.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
btn1.setHeight(btn1.getWidth());
btn2.setHeight(btn1.getWidth());
btn3.setHeight(btn1.getWidth());
btn4.setHeight(btn1.getWidth());
}
});
希望这可以帮助有同样问题的人。