Android 使用布局作为按钮

Android 使用布局作为按钮,android,button,layout,Android,Button,Layout,我曾试图在Android中制作一个包含多个组件的自定义按钮,以布局的形式直接说明按钮包含的内容,如下所示: <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button" android:clickable

我曾试图在Android中制作一个包含多个组件的自定义按钮,以布局的形式直接说明按钮包含的内容,如下所示:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button"
    android:clickable="true"
    android:focusable="true">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView4"
            android:background="@drawable/button1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button2"
            android:id="@+id/textView2" />

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:id="@+id/imageView5"
            android:background="@drawable/button4"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="sub-description"
            android:id="@+id/textView3" />

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:background="@drawable/button5" />
    </LinearLayout>

</LinearLayout>

问题:如何在活动中使用此按钮,并按下所有类型的按钮并进行重点定制?
(到目前为止,我所做的只是处理这个UI文件XML)

您必须将LinearLayout设置为clickable。您可以在XML中使用

android:clickable="true"
或者用代码

yourLinearLayout.setClickable(true);


yourLinearLayout.setOnClickListener(
            new View.OnClickListener() {    
                @Override
                public void onClick(View v) {
                    // DO STUFF!
                }
            }
        );

干杯

您有两个XML或代码选项

XML:


请记住,在这两种情况下,都要像使用简单按钮一样使用onClick。

更好的选择是将图像包含在文本视图中。一种被称为计算机绘图的技术。
 <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        >

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:id="@+id/imageView5"
            android:background="@drawable/button4"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="sub-description"
            android:id="@+id/textView3" />

        <ImageView
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:background="@drawable/button5" />
    </LinearLayout>
LinearLayout.setClickable(true);