Я учусь разрабатывать пользовательские интерфейсы Android. Я хочу создать ImageButton с набором рисунков для указания различных состояний кнопок. Я создал две картинки для каждой кнопки: 133 dp для нормального состояния и масштабированную копию (126 dp) для создания эффекта нажатой кнопки.
Я нарисовал вторую картинку, чтобы показать, что механизм выбора изображения работает по крайней мере.
Вот начальное состояние моего приложения
Когда я нажимаю кнопку, она меняет только цвет, но не размер, как ожидалось. Оба изображения подогнаны под один и тот же размер
XML макет активности:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainUserActions"
android:background="@android:color/transparent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="3"
android:layout_alignParentTop="true">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:weightSum="2"
android:gravity="top">
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageButton"
android:clickable="true"
android:layout_weight="1"
android:src="@drawable/broom_stick_image_selection"
android:background="@null"
android:layout_gravity="center"
android:scaleType="center" />
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageButton2"
android:layout_gravity="center"
android:clickable="true"
android:layout_weight="1"
android:background="@null"
android:src="@drawable/vacuum_selection"
android:scaleType="center" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_weight="1"></LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_weight="1"></LinearLayout>
</LinearLayout>
</RelativeLayout>
выбираемый выбор xml:
<?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/broom_stick_white_pressed_rose" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/broom_stick_white" /> <!-- focused -->
<item android:drawable="@drawable/broom_stick_white" /> <!-- default -->
</selector>
Как сообщить системе, что изображения src просто центрируются на макете кнопки, а не подгоняются под один и тот же размер?
wrap_content
. - person NoChinDeluxe   schedule 20.04.2016