如何在 Android 中缩放单选按钮中的圆圈
How to scale the circle in Radiobuttons in Android
我在 Android 中使用了一些自定义的 RadioButtons,我希望它们能随屏幕尺寸缩放。这就是为什么我对文本和来自此库 https://github.com/intuit/sdp and https://github.com/intuit/ssp
的 UI 元素使用可缩放大小单位的原因
不幸的是,虽然文本本身和底部尺寸会随着屏幕尺寸的增大而缩放,但圆圈仍然大小相同,这看起来不太好。你可以在我的截图中看到它:
代码如下:
约束布局中的单选按钮:
<RadioButton
android:id="@+id/r_Button_Small"
android:layout_width="@dimen/_73sdp"
android:layout_height="@dimen/_28sdp"
android:layout_weight="1"
android:textSize="@dimen/_12ssp"
android:background="@drawable/background_selector"
android:text="@string/small"
android:textColor="@drawable/text_selector"
android:gravity="center"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.322"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginLeft="@dimen/_50sdp"
app:layout_constraintVertical_bias="0.584"
/>
后台文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:drawable="@drawable/state_checked" />
<item android:drawable="@drawable/state_unchecked" />
</selector>
状态文件为“已检查”
<?xml version="1.0" encoding="UTF-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorBlue">
</solid>
<corners android:radius="@dimen/_25sdp"></corners>
</shape>
和“状态未检查”
<?xml version="1.0" encoding="UTF-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorTest">
</solid>
<corners android:radius="@dimen/_25sdp"></corners>
</shape>
你知道我还可以缩放单选按钮的圆圈吗?
谁能想出一个简单的解决方案来做到这一点?我的意思是,我无法想象对于平板电脑,您不能真正使用 RadioButtons,而且我不明白为什么按钮的大小可以调整,而内圈的大小不能调整,也不能缩放。
单选按钮是一个内置控件,因此它的大小是固定的。但是如果你需要让它变小,你可以使用:
<RadioButton
android:scaleX="0.7"
android:scaleY="0.7" />
这是一种解决方法,不应该用来使它变大,因为按钮会像素化
我在 Android 中使用了一些自定义的 RadioButtons,我希望它们能随屏幕尺寸缩放。这就是为什么我对文本和来自此库 https://github.com/intuit/sdp and https://github.com/intuit/ssp
的 UI 元素使用可缩放大小单位的原因不幸的是,虽然文本本身和底部尺寸会随着屏幕尺寸的增大而缩放,但圆圈仍然大小相同,这看起来不太好。你可以在我的截图中看到它:
代码如下: 约束布局中的单选按钮:
<RadioButton
android:id="@+id/r_Button_Small"
android:layout_width="@dimen/_73sdp"
android:layout_height="@dimen/_28sdp"
android:layout_weight="1"
android:textSize="@dimen/_12ssp"
android:background="@drawable/background_selector"
android:text="@string/small"
android:textColor="@drawable/text_selector"
android:gravity="center"
android:textAlignment="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.322"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginLeft="@dimen/_50sdp"
app:layout_constraintVertical_bias="0.584"
/>
后台文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:drawable="@drawable/state_checked" />
<item android:drawable="@drawable/state_unchecked" />
</selector>
状态文件为“已检查”
<?xml version="1.0" encoding="UTF-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorBlue">
</solid>
<corners android:radius="@dimen/_25sdp"></corners>
</shape>
和“状态未检查”
<?xml version="1.0" encoding="UTF-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorTest">
</solid>
<corners android:radius="@dimen/_25sdp"></corners>
</shape>
你知道我还可以缩放单选按钮的圆圈吗?
谁能想出一个简单的解决方案来做到这一点?我的意思是,我无法想象对于平板电脑,您不能真正使用 RadioButtons,而且我不明白为什么按钮的大小可以调整,而内圈的大小不能调整,也不能缩放。
单选按钮是一个内置控件,因此它的大小是固定的。但是如果你需要让它变小,你可以使用:
<RadioButton
android:scaleX="0.7"
android:scaleY="0.7" />
这是一种解决方法,不应该用来使它变大,因为按钮会像素化