具有自定义XML布局的button

是否有可能创build一个自定义XML布局的button

我有这样的布局:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="1dp" android:background="#7e7e7e"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dp" android:background="#f9f9f9"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="ButtText" android:textColor="#000000"> </TextView> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/arrow" android:layout_alignParentRight="true"> </ImageView> </RelativeLayout> </LinearLayout> 

现在我想用这个button。 任何人都知道我可以做到这一点?
我在想如果我有Button.java文件扩展button。 然后setView(R.layout.mylayout.xml); …但这很容易,显然不工作

问候马丁

Solutions Collecting From Web of "具有自定义XML布局的button"

你不能从字面上使用Button上的布局。 不过,您可以使用Button上的android:drawableRight属性来实现类似的效果。

最近我一直在处理这个问题,因为我想把两个文本视图放在一个button中。 你必须select:

  1. 扩展Button类并在您的布局中使用它
  2. 使用一个button的内部布局,并拖动里面的所需,并通过添加这个参数来使其可点击:

     android:clickable="true" 

之后,你可以通过定义修改你的布局的外观

 android:background="@drawable/my_background" 

给它一个“button”的表情和行为

/res/drawable/mi_background.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@color/black"/> <item android:state_pressed="true" android:state_enabled="false" android:drawable="@color/black" /> <item android:drawable="@color/white"/> </selector> 

你可以使用一个RelativeLayout来简单地将你的自定义button视图覆盖在一个真正的button上,如下所示:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- Your custom button layout --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#7e7e7e" android:padding="1dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#f9f9f9" android:padding="10dp"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="ButtText" android:textColor="#000000" /> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:background="@drawable/jobs_menu" /> </RelativeLayout> </LinearLayout> </RelativeLayout>