2013-02-12 80 views
0

我想根据ImageButton上的文字大小制作这个按钮变得更宽。但如果失败。这里是我的XML代码和我在模拟器中实际看到的文本太长时的内容。选择器.9patch中的图像,当文本多于图像按钮时,如何让图像按钮变得更宽?谢谢。如何使用9patch图像制作ImageButton?

  <ImageButton 
       android:id="@+id/bonjour" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:scaleType="fitXY" 
       android:background="@layout/main_menu_account_white_button_selector"/> 

      <TextView 
       android:id="@+id/bonjour_text_up" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerHorizontal="false" 
       android:text="" 
       android:textColor="@color/menubutton_black" 
       android:textSize="@dimen/small_bottom_menubutton_title_text_size_dn" 
       android:textStyle="bold|italic" /> 

      <TextView 
       android:id="@+id/bonjour_text_dn" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/bonjour_text_up" 
       android:layout_centerHorizontal="false" 
       android:text="ScreenName" 
       android:textColor="@color/menubutton_black" 
       android:textSize="@dimen/small_bottom_menubutton_title_text_size_dn" 
       android:textStyle="bold|italic" /> 
     </RelativeLayout> 


<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/main_menu_account_white_button_1" /> <!-- pressed --> 
    <item android:state_selected="true" 
      android:drawable="@drawable/main_menu_account_white_button_1" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/main_menu_account_white_button_0" /> <!-- focused --> 
    <item android:drawable="@drawable/main_menu_account_white_button_0" /> <!-- default --> 
</selector> 

enter image description here

+2

您的图像应该是可绘制资源,而不是布局资源(请参阅android:ImageButton的背景属性)。 – Stefan 2013-02-12 10:46:13

+0

我试过这个,但它也没有帮助 – yozhik 2013-02-12 10:49:48

回答

0

这是解决方法,它帮助我解决了我的问题: 我将9patch图像设置为RelativeLayout的背景,删除了ImageButton。 实际按钮需要这样做: 顶部&左侧=必须标记为仅在中间区域可缩放 左侧和底部=内容必须标记为全部长度。

  <RelativeLayout 
      android:id="@+id/bonjour" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/main_menu_account_white_button_0" 
      android:clickable="true" > 

      <TextView 
       android:id="@+id/bonjour_text_up" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerHorizontal="false" 
       android:text="" 
       android:textColor="@color/menubutton_black" 
       android:textSize="@dimen/small_bottom_menubutton_title_text_size_dn" 
       android:textStyle="bold|italic" /> 

      <TextView 
       android:id="@+id/bonjour_text_dn" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/bonjour_text_up" 
       android:layout_centerHorizontal="false" 
       android:text="ScreenName" 
       android:textColor="@color/menubutton_black" 
       android:textSize="@dimen/small_bottom_menubutton_title_text_size_dn" 
       android:textStyle="bold|italic" /> 
     </RelativeLayout> 
0

让您9patch图像中的drawable文件夹,并使其在布局你的ImageButton的源/背景。