Android: масштабирование фонового изображения RadioButton или другой способ сделать RadioButton изображением - PullRequest
0 голосов
/ 24 мая 2018

Я создаю приложение, связанное с карточной игрой, и поэтому в нем много изображений карточек.В одном разделе мне нужно, чтобы пользователь выбрал одну из четырех карт, при этом возможен только один выбор, и я хочу, чтобы карта слегка меняла цвет после нажатия, чтобы показать, что она выбрана в данный момент.

Для основной части этой задачи радиогруппа с RadioButtons имеет смысл, так как встроена функциональность для наличия отмеченного / непроверенного состояния и отмены выбора всех других параметров при выборе нового;однако проблема в том, что я хочу, чтобы кнопки были самими картами и, следовательно, изображением без текста вообще.

Сначала этот пост выглядел многообещающе: Добавление пользовательских радио-кнопок в Android

Мое использование этой стратегии:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="4dp"
    android:layout_weight="5"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/label_seatGod"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="8"
        android:gravity="center_vertical"
        android:text="@string/ex2"
        android:textColor="@color/font_condition_labels"
        android:textSize="@dimen/font_gen_label_size"
        android:textStyle="bold" />

    <RadioGroup
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="8" >

        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@drawable/power_aphrodite"
            android:checked="false"
            android:text="@null" />
    </RadioGroup>

</LinearLayout>

, что привело к:Radio button with background image

Это почти идеально.Текст отсутствует, и вся область пространства интерактивных кнопок состоит из изображения, которое я хочу, за исключением того, что, как вы видите, изображение совсем не масштабируется и обрезается по краям.Над RadioButton вы можете увидеть LinearLayout с 4 кнопками ImageButton, которые точно показывают, как я хочу, чтобы изображение RadioButton / карты отображалось (не обращайте внимания на серый, пока я еще не закончил заполнение видов).

По сути, я хочуRadioButton, который функционирует нормально, но выглядит точно так же, как одна из четырех кнопок ImageButton в верхней части.В идеале scaleType = "fitCenter" было бы исправлением, поскольку это то, что я использую в примере ImageButtons, но вы не можете применить этот атрибут к кнопке, которую можно нарисовать с помощью RadioButton или его фона.

Так как я могу получить изображение в масштабе и не обрезать его, не прибегая к каким-то быстродействующим манипуляциям с макетированием или создавая совершенно новый класс RadioButton?

Заранее спасибо.

1 Ответ

0 голосов
/ 24 мая 2018

Может быть, вы можете попробовать добавить это к вашему RadioButton в xml:

    android:scaleType="centerCrop"
...