我将项目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>
答案 0 :(得分:1)
在当前情况下,使用Button
代替ImageButton
。根据{{3}},Button
会显示Image (instead of text)
pressed
clicked
,用户可以background
或Button
。
如果将图像设置为Image
的{{1}},则按钮将独立缩放X和Y中的图像,以使图像的宽度和高度与按钮大小完全匹配。这可能会改变图像的纵横比。在你的情况下发生这种情况。
在其他情况下,如果您将background
设置为ImageButton
scaleType
并将centerInside
设置为“{{1}}”将统一缩放图像(维护图像的宽高比)这样图像的尺寸(宽度和高度)将等于或小于视图的相应尺寸(减去填充)。
答案 1 :(得分:0)
你可以尝试这种方式,对我的临时图像有用吗
<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:background="#669900"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="10dp">
<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:layout_alignParentLeft="true"
android:background="@drawable/ok_button"
android:minHeight="0dp"
android:minWidth="0dp" />
<Button
android:id="@+id/cancel_alarm_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/cancel_button"
android:minHeight="0dp"
android:minWidth="0dp"/>
</RelativeLayout>
</LinearLayout>
答案 2 :(得分:0)
我使用ImageButton代替Button,它解决了我的问题。