我遇到了9补丁按钮背景的问题,我无法弄清楚我做错了什么。
这是按钮的xml配置:
<Button android:layout_width="wrap_content" android:id="@+id/buttonBack"
android:layout_alignParentLeft="true" android:layout_centerVertical="true"
android:padding="2dp" android:layout_height="wrap_content"
android:background="@drawable/selector_bg_back_button" android:text="@string/back"
android:textColor="#ffffff" android:textStyle="bold"
android:layout_marginLeft="2dp" />
在这个配置中,我正在使用一个选择器,以便在按下按钮时背景不同(相同的9补丁,仅在灰度级)。我也试过直接使用九个补丁,没有选择器,它似乎没有区别。
这是9补丁图片:
这就是结果:
如您所见,填充和拉伸区域似乎完全被忽略。 我的印象是它使用9补丁图像作为普通png,但我无法弄清楚原因。任何帮助将不胜感激,因为这开始让我紧张:p
提前致谢。
修改
好的,这是我正在使用按钮的完整布局。
<?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="fill_parent"
android:orientation="vertical">
<RelativeLayout android:layout_width="fill_parent"
android:background="#0ab0ed" android:layout_height="40dip"
android:padding="0px">
<Button android:layout_width="wrap_content" android:id="@+id/buttonBack"
android:layout_alignParentLeft="true" android:layout_centerVertical="true"
android:padding="2dp" android:layout_height="wrap_content"
android:background="@drawable/btn_bg_back_blue" android:text="@string/back"
android:textColor="#ffffff" android:textStyle="bold"
android:layout_marginLeft="2dp" />
<ImageView android:layout_width="wrap_content"
android:layout_height="fill_parent" android:src="@drawable/logo"
android:layout_centerHorizontal="true" />
</RelativeLayout>
<RelativeLayout android:layout_width="fill_parent"
android:padding="10dp" android:layout_height="wrap_content"
android:background="#f5f5f5">
<ImageView android:layout_height="wrap_content"
android:layout_margin="10dp" android:layout_centerHorizontal="true"
android:layout_width="wrap_content" android:id="@+id/image" />
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/txtTitle"
android:textColor="#182973" android:textSize="16dp"
android:textStyle="bold" android:gravity="center_horizontal" />
</RelativeLayout>
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:background="#ffffff">
<TextView android:layout_width="wrap_content"
android:layout_alignParentTop="true" android:layout_alignParentLeft="true"
android:layout_height="wrap_content" android:id="@+id/txtDate" style="@style/content" />
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</ScrollView>
</RelativeLayout>
在代码方面,我可以告诉你的不多。我所做的只是为按钮添加一个非常简单的监听器:
Button back = (Button) findViewById(R.id.buttonBack);
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
答案 0 :(得分:0)
按钮实际上是那个大小,而包含RelativeLayout
的背景+大小让你不这么认为。您实际上不需要使用按钮小部件。您可以将RelativeLayout
的背景设置为按钮的背景,并实现OnClickListener
。添加TextView
和ImageView
即可获得所需的效果。
答案 1 :(得分:0)
你的按钮和你的imageview都将layout_width设置为WRAP_CONTENT,因此它们不会大于原始大小,因此你的9补丁不会被拉伸。