我试图在屏幕中央连续排列3个按钮。每个按钮都有一个背景颜色,一个图像和图像下的一些文本。我尝试过使用LinearLayout,但我无法将图像放在按钮上。我尝试过RelativeLayout,我设法让它们连续排列,但它们不在屏幕的中心。有什么建议吗?
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="85dp"
android:paddingBottom="10dp"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:background="@drawable/light"
android:text="@string/start"
android:textColor="@color/text"
android:textSize="8pt"
android:textStyle="bold"
android:layout_marginTop="0dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_alignParentTop="true" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image"
android:src="@drawable/hstart"
android:layout_alignLeft="@+id/start"
android:layout_alignStart="@+id/start"
android:layout_alignRight="@+id/start"
android:layout_alignEnd="@+id/start"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="0dp" />
答案 0 :(得分:2)
这是您的Button视图(布局文件夹中的your_btn_view.xml):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:clickable="true"
android:background="@android:drawable/btn_default"
android:gravity="center" >
<ImageView
android:id="@+id/btn_iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_add" />
<TextView
android:id="@+id/btn_tv"
android:text="text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
这是包含三个按钮的布局视图:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal" >
<include
android:id="@+id/btn1"
layout="@layout/your_btn_view" />
<include
android:id="@+id/btn2"
layout="@layout/your_btn_view" />
<include
android:id="@+id/btn3"
layout="@layout/your_btn_view" />
</LinearLayout>
然后,访问并填写TextView
中相应的ImageView
和onCreate()
,如下所示:
@Override
public void onCreate(Bundle sIS){
super.onCreate(sIS);
setContentView(R.layout.that_layout_above, this, false);
LinearLayout btn1 = (LinearLayout)findViewById(R.id.btn1);
((TextView)btn1.findViewById(R.id.btn_tv)).setText("my text");
...
答案 1 :(得分:1)
使用LinearLayout为每个按钮/图像组合保存RelativeLayout。 “嵌套”布局对于获得这种类型的视觉效果非常常见。