首页 > 解决方案 > 自定义可绘制单选按钮 Android 宽度和高度参数

问题描述

我一直在阅读有关堆栈溢出的一些答案,尽管尝试了各种建议,但似乎无法使其正常工作。也许有一种“新”的方式可以做到?

我正在尝试将自定义可绘制对象添加到单选集合中的两个单选按钮:

<RadioGroup
            android:id="@+id/orderByRadioGroup"
            android:layout_width="0dp"
            android:layout_height="30dp"
            android:orientation="horizontal"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent">

            <RadioButton
                android:id="@+id/radioStarRating"
                android:layout_width="0dp"
                android:layout_height="30dp"
                android:layout_weight="1"
                android:button="@drawable/checkbox"
                android:text="@string/filters_star_rating"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="@+id/guideline46"
                app:layout_constraintTop_toTopOf="parent" />

            <RadioButton
                android:id="@+id/radioResponseTime"
                android:layout_width="0dp"
                android:layout_height="30dp"
                android:layout_weight="1"
                android:button="@drawable/checkbox"
                android:text="@string/filters_response_time"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toStartOf="@+id/guideline46"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
        </RadioGroup>

单选按钮

`android:button` 

已经设置了这个drawable:

<?xml version="1.0" encoding="utf-8"?>

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:state_checked="false" android:drawable="@drawable/checkboxfalse"
            android:width = "30dp"
            android:height = "30dp"/>
        <item android:state_checked="true" android:drawable="@drawable/checkboxtrue"
            android:width = "30dp"
            android:height = "30dp"/>
        <item android:drawable="@drawable/checkboxfalse"
            android:width = "30dp"
            android:height = "30dp"/>
    </selector>

但结果是这样的:

在此处输入图像描述

如何正确制作可绘制比例?selector元素没有可绘制对象的高度和宽度,这很困难......

感谢您的任何帮助/指点。

标签: androidandroid-layoutradio-buttonandroid-custom-viewandroid-styles

解决方案


将您的选择器drawable设置为背景:

android:background="@drawable/checkbox"
android:button="@android:color/transparent"

推荐阅读