【发布时间】:2016-02-22 19:35:51
【问题描述】:
我将项目 SDK 版本从 10 升级到 23,同时将项目从 Eclipse 移植到 Android Studio。
按钮可绘制的 xml 和 png 图像保持不变。但是按钮背景看起来缩放不正确。
按钮状态列表:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ok_button_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/ok_button_normal"
android:state_focused="true" />
<item android:drawable="@drawable/ok_button_normal" />
</selector>
对话框布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
android:background="#669900"
android:gravity="center_horizontal"
>
<TextView android:id="@+id/alarm_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFF"
android:textSize="16dp"
/>
<RelativeLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center"
android:padding="0dp">
<Button
android:id="@+id/ok_alarm_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ok_button"
android:layout_alignParentLeft="true"
/>
<Button
android:id="@+id/cancel_alarm_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/cancel_button"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
</LinearLayout>
【问题讨论】:
-
使用 ImageButton 而不是 Button。按钮将缩放图像以适合内部。在 ImageButton 中,您可以指定 ScaleType。
-
设置按钮的源代码而不是像这样的背景:android:src="@drawable/ok_button" 用 imageView 替换你的按钮
-
@Anjali src 不可用于 Button,可用于 ImageView 和 ImageButton。
-
@DhavalPatel - ImageButton 解决了我的问题。