如何使用9个补丁图像制作图像按钮?

时间:2013-02-12 10:38:48

标签: android android-layout

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

            <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 个答案:

答案 0 :(得分:0)

9patch图片保留在drawable文件夹中,并将其作为图片布局中ImageButton的来源/背景。

答案 1 :(得分:0)

以下是帮助我解决问题的解决方法: 我将9patch图像设置为RelativeLayout的背景,删除了ImageButton。 实际按钮需要以这种方式完成: 顶部和左侧=必须仅在中间区域标记为可缩放 left和bottom = content必须标记为全长。

            <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>