少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述在android中添加自定义单选按钮相关的知识,希望能为你提供帮助。
我试图获取android中常规按钮的单选按钮效果我在下面有一个简单的android单选按钮
代码是::
activity_main.xml中
<
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<
RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<
RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="RadioButton1" />
<
RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton2" />
<
RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RadioButton3" />
<
/RadioGroup>
<
/RelativeLayout>
如何自定义如下::
谢谢 !
[编辑]使用其中一个答案的代码
但是按钮名称被选择选项如何删除它所掩盖?
{编辑}更多变化最后的改变应该至少我应该知道我从三个单选按钮中选择了哪个按钮....是否可以得到如下所示?
答案添加引用图像或选择器(如下所示)的背景drawable,并使按钮透明:
<
RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/yourbuttonbackground"
android:button="@android:color/transparent"
android:checked="true"
android:text="RadioButton1" />
如果您希望单选按钮在选中时具有不同的资源,请创建选择器背景drawable:
RES /抽拉/ yourbuttonbackground.xml
<
selector xmlns:android="http://schemas.android.com/apk/res/android" >
<
item
android:drawable="@drawable/b"
android:state_checked="true"
android:state_pressed="true" />
<
item
android:drawable="@drawable/a"
android:state_pressed="true" />
<
item
android:drawable="@drawable/a"
android:state_checked="true" />
<
item
android:drawable="@drawable/b" />
<
/selector>
在上面的选择器中,我们引用了两个drawable,
a
和b
,这是我们如何创建它们:res / drawable / a.xml- 选定状态
<
shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<
corners
android:radius="5dp" />
<
solid
android:color="#fff" />
<
stroke
android:width="2dp"
android:color="#53aade" />
<
/shape>
res / drawable / b.xml- 常规状态
<
shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<
corners
android:radius="5dp" />
<
solid
android:color="#fff" />
<
stroke
android:width="2dp"
android:color="#555555" />
<
/shape>
关于drawables的更多信息:http://developer.android.com/guide/topics/resources/drawable-resource.html
另一答案我意识到这是一个迟来的答案,但通过developer.android.com看,似乎Toggle按钮将是您的情况的理想选择。
http://developer.android.com/guide/topics/ui/controls/togglebutton.html
当然,您仍然可以使用其他建议来获得背景可绘制以获得您想要的自定义外观。
<
ToggleButton
android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/custom_button_background"
android:textOn="On"
android:textOff="Off"
/>
现在,如果你想进行最后的编辑并在按钮周围产生“光环”效果,你可以使用另一个自定义选择器来做到这一点。
<
?xml version="1.0" encoding="utf-8"?>
<
selector xmlns:android="http://schemas.android.com/apk/res/android">
<
item android:state_selected="true" >
<
!-- selected -->
<
shape>
<
solid
android:color="@android:color/white" />
<
stroke
android:width="3px"
android:color="@android:color/holo_blue_bright" />
<
corners
android:radius="5dp" />
<
/shape>
<
/item>
<
item>
<
!-- default -->
<
shape>
<
solid
android:color="@android:color/white" />
<
stroke
android:width="1px"
android:color="@android:color/darker_gray" />
<
corners
android:radius="5dp" />
<
/shape>
<
/item>
<
/selector>
另一答案使用Evan答案中的相同XML文件格式,但只需要一个可绘制文件即可进行格式化。
<
RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/custom_button_background"
android:button="@android:color/transparent"
android:checked="true"
android:text="RadioButton1" />
和你的单独的drawable文件:
<
?xml version="1.0" encoding="utf-8"?>
<
selector xmlns:android="http://schemas.android.com/apk/res/android" >
<
item android:state_pressed="true" >
<
shape android:shape="rectangle" >
<
corners android:radius="3dip" />
<
stroke android:width="1dip" android:color="#333333" />
<
solid android:color="#cccccc" />
<
/shape>
<
/item>
<
item android:state_checked="true">
<
shape android:shape="rectangle" >
<
corners android:radius="3dip" />
<
stroke android:width="1dip" android:color="#333333" />
<
solid android:color="#cccccc" />
<
/shape>
<
/item>
<
item>
<
shape android:shape="rectangle">
<
corners android:radius="3dip" />
<
stroke android:width="1dip" android:color="#cccccc" />
<
solid android:color="#ffffff" />
<
/shape>
<
/item>
<
/selector>
另一答案我已更新已接受的答案并删除了不必要的东西
我为后续图像创建了XML。
文章图片
【在android中添加自定义单选按钮】您的
RadioButton
的XML代码将是:<
RadioGroup
android:id="@+id/daily_weekly_button_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:gravity="center_horizontal"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<
RadioButton
android:id="@+id/radio0"
android:layout_width="@dimen/_80sdp"
android:gravity="center"
android:layout_height="wrap_content"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:checked="true"
android:paddingLeft="@dimen/_16sdp"
android:paddingTop="@dimen/_3sdp"
android:paddingRight="@dimen/_16sdp"
android:paddingBottom="@dimen/_3sdp"
android:text="Daily"
android:textColor="@color/radio_flat_text_selector" />
<
RadioButton
android:id="@+id/radio1"
android:gravity="center"
android:layout_width="@dimen/_80sdp"
android:layout_height="wrap_content"
android:background="@drawable/radio_flat_selector"
android:button="@android:color/transparent"
android:paddingLeft="@dimen/_16sdp"
android:paddingTop="@dimen/_3sdp"
android:paddingRight="@dimen/_16sdp"
android:paddingBottom="@dimen/_3sdp"
android:text="Weekly"
android:textColor="@color/radio_flat_text_selector" />
<
/RadioGroup>
radio_flat_selector.xml
for background selector:<
?xml version="1.0" encoding="utf-8"?>
<
selector xmlns:android="http://schemas.android.com/apk/res/android">
<
item android:drawable="@drawable/radio_flat_selected" android:state_checked="true" />
<
item android:drawable="@drawable/radio_flat_regular" />
<
/selector>
radio_flat_selected.xml
for selected button:<
?xml version="1.0" encod
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 如何使用mockito在安卓系统中创建模拟api响应[关闭]。
- 如何在Android Studio的菜单应用程序标题栏中的项目之间添加行()
- create-react-app-不能使用npm install
- 如何解决Android许可问题
- 在熊猫中应用```apply()```时出错
- Android导航图继续api调用问题
- Android(WebView-未为会议启用摄像头和麦克风)
- 使用create-react-app创建React应用需要花费很长时间,但并不成功
- AWS面部识别试图用Android应用程序中的BasicAWSCredentials描述集合。]