【问题标题】:How to scale the circle in Radiobuttons in Android如何在 Android 的 Radiobuttons 中缩放圆圈
【发布时间】:2023-03-23 00:57:01
【问题描述】:

我在 Android 中使用了一些自定义的 RadioButtons,我希望它们能够随屏幕尺寸缩放。这就是为什么我使用来自这个库 https://github.com/intuit/sdphttps://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 的圆圈吗?

谁能想到一个简单的解决方案来做到这一点?我的意思是我无法想象对于平板电脑你不能真正使用 RadioButtons,我不明白为什么按钮的大小可以调整,而内圈的大小不能调整并且不能缩放。

【问题讨论】:

    标签: android radio-button scaling


    【解决方案1】:

    单选按钮是一个内置的控件组件,因此它的大小是固定的。但如果你需要让它更小,你可以使用:

    <RadioButton
      android:scaleX="0.7"
      android:scaleY="0.7" />
    

    这是一种解决方法,不应该用来放大按钮,因为按钮会像素化

    【讨论】:

    • 感谢 fisio 的回答。我不想让整个底部变大或变小。我只想调整按钮内圆圈的大小,因为它不会随着按钮的大小而缩放。对于像平板电脑这样的大型设备,这看起来很糟糕
    • 考虑到我个人会切换到另一种按钮类型的情况,但如果你想坚持使用 RadioButton 遗憾的是我认为你必须实现一个适合你需要的自定义按钮
    • 没错。我同意你的看法。它们不适合仅仅因为它们不能扩展
    • 我之前已经说过如何使用切换按钮来代替
    • 我理解您对平台的不满。祝你的项目好运
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 2021-12-22
    • 2016-02-27
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    相关资源
    最近更新 更多