【问题标题】:How we can create radio button with image and selected true button我们如何使用图像和选定的真实按钮创建单选按钮
【发布时间】:2021-01-01 18:27:14
【问题描述】:

请让我知道我们如何创建带有图像的单选按钮并选择真正的按钮? 这里我附上了我需要的屏幕截图?

【问题讨论】:

  • 您可以使用图像视图并为选中和未选中设置两个不同的src
  • 我没有得到你的答案,你能给我一个例子吗,我是新手

标签: android android-layout radio-button radio-group


【解决方案1】:

我使用 textview 制作了三个自定义单选按钮,您可以使用 imageview

这是我的 xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@color/white"
     android:orientation="vertical">

<TextView
    android:id="@+id/tv_home"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:background="?attr/selectableItemBackgroundBorderless"
    android:gravity="center"
    android:paddingTop="@dimen/docs__bottom_icon_padding"
    android:paddingBottom="@dimen/docs__bottom_icon_padding"
    android:text="@string/home"
    android:drawablePadding="@dimen/padding_icon_text_top_bar_docs"
    app:drawableTopCompat="@drawable/ic_home"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/tv_jpg"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent" />

<TextView
    android:id="@+id/tv_jpg"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:background="?attr/selectableItemBackgroundBorderless"
    android:gravity="center"
    android:paddingTop="@dimen/docs__bottom_icon_padding"
    android:paddingBottom="@dimen/docs__bottom_icon_padding"
    android:text="@string/files"
    android:drawablePadding="@dimen/padding_icon_text_top_bar_docs"
    app:drawableTopCompat="@drawable/ic_files"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/tv_pdf"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/tv_home" />

<TextView
    android:id="@+id/tv_pdf"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:background="?attr/selectableItemBackgroundBorderless"
    android:gravity="center"
    android:paddingTop="@dimen/docs__bottom_icon_padding"
    android:paddingBottom="@dimen/docs__bottom_icon_padding"
    android:drawablePadding="@dimen/padding_icon_text_top_bar_docs"
    android:text="@string/pdf"
    app:drawableTopCompat="@drawable/ic_pdf"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/tv_jpg" />
</androidx.constraintlayout.widget.ConstraintLayout>

在activity的onCreate中写下这段代码

       tv_home.setOnClickListener {
            setSelected(tv_home)
        }
        tv_jpg.setOnClickListener {
            setSelected(tv_jpg)
        }
        tv_pdf.setOnClickListener {
            setSelected(tv_pdf)
        }

oncreate 的外侧使方法为

private fun setSelected(pTextViw: TextView) {
    if (tv_home == pTextViw) {
        tv_home.compoundDrawables[1].setTint(mSelectedColor)
        tv_home.setTextColor(mSelectedColor)
        tv_jpg.compoundDrawables[1].setTint(mUnSelectedColor)
        tv_jpg.setTextColor(mUnSelectedColor)
        tv_pdf.compoundDrawables[1].setTint(mUnSelectedColor)
        tv_pdf.setTextColor(mUnSelectedColor)
    } else if (tv_jpg == pTextViw) {
        tv_home.compoundDrawables[1].setTint(mUnSelectedColor)
        tv_home.setTextColor(mUnSelectedColor)
        tv_jpg.compoundDrawables[1].setTint(mSelectedColor)
        tv_jpg.setTextColor(mSelectedColor)
        tv_pdf.compoundDrawables[1].setTint(mUnSelectedColor)
        tv_pdf.setTextColor(mUnSelectedColor)
    } else if (tv_pdf == pTextViw) {
        tv_home.compoundDrawables[1].setTint(mUnSelectedColor)
        tv_home.setTextColor(mUnSelectedColor)
        tv_jpg.compoundDrawables[1].setTint(mUnSelectedColor)
        tv_jpg.setTextColor(mUnSelectedColor)
        tv_pdf.compoundDrawables[1].setTint(mSelectedColor)
        tv_pdf.setTextColor(mSelectedColor)
    }
}

【讨论】:

  • 先生能不能把项目文件分享给我
  • 项目文件太大,你很难理解。什么对你来说模棱两可?
  • 我现在以自己的方式完成了它,我用这些图像创建了单选按钮选择器并分配给每个单选按钮,顺便说一句,它工作得很好。
猜你喜欢
  • 2011-10-28
  • 2021-02-03
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多