当前位置:   article > 正文

Android 自定义RadioButton使用

android 自定义radiobutton

【声明】此文出自指尖飞落的博客:http://blog.csdn.net/huntersnail

——每天写一篇博客,每天做一点技术积累!


Android自定义矩形及selector、shape的使用

由于项目开发需要,以前虽然用过selector、shape但是都没有好好去研究过,只知道用,不知道它们的属性具体有哪些作用。虽然网上一查就都知道了,感觉还是要自己去弄懂一下。

下面咱们一起去研究下:

一、xml布局文件

/测试Demo/res/layout/check_box.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical" >
  6.  
  7.     <LinearLayout
  8.         android:id="@+id/order_meth"
  9.         style="@style/style_padding"
  10.         android:layout_width="match_parent"
  11.         android:layout_height="wrap_content"
  12.         android:layout_gravity="center_vertical"
  13.         android:background="@drawable/selector_mine"
  14.         android:orientation="horizontal" >
  15.  
  16.         <TextView
  17.             android:layout_width="wrap_content"
  18.             android:layout_height="wrap_content"
  19.             android:text="送达方式"
  20.             android:textSize="18sp" />
  21.  
  22.         <RadioGroup
  23.             android:id="@+id/type"
  24.             android:layout_width="match_parent"
  25.             android:layout_height="wrap_content"
  26.             android:gravity="center"
  27.             android:orientation="horizontal" >
  28.  
  29.             <RadioButton
  30.                 android:id="@+id/rb_one"
  31.                 android:layout_width="wrap_content"
  32.                 android:layout_height="wrap_content"
  33.                 style="@style/sku_rd"
  34.                 android:layout_marginLeft="20dp"
  35.                 android:gravity="center"
  36.                 android:checked="true"
  37.                 android:padding="10dp"
  38.                 android:text="一小时达" />
  39.  
  40.             <RadioButton
  41.                 android:id="@+id/rb_two"
  42.                 android:layout_width="wrap_content"
  43.                 android:layout_height="wrap_content"
  44.                 style="@style/sku_rd"
  45.                 android:layout_marginLeft="10dp"
  46.                 android:gravity="center"
  47.                 android:padding="10dp"
  48.                 android:text="预定送达" />
  49.         </RadioGroup>
  50.     </LinearLayout>
  51.  
  52. </LinearLayout>


二、点击时背景颜色处理

1、style样式

  1. <resources xmlns:android="http://schemas.android.com/apk/res/android">
  2.     <style name="sku_rd">
  3.         <item name="android:textColor">@color/selector_text</item>
  4.         <item name="android:background">@drawable/check_boxs</item>
  5.         <item name="android:button">@null</item><!--去掉RadioButton的那个圆形-->
  6.     </style>
  7. </resources>


2、点击RadioButton边框背景颜色变换的关键xml

属性解读

“true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。
            android:state_focused="true/false"

“true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用。
            android:state_selected="true/false"

“true”表示选中状态使用(例如Tab打开);“false”表示非选中状态使用。
            android:state_active="true/false"

“true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。)
            android:state_checkable="true/false"

 “true”表示勾选状态使用;“false”表示非勾选状态使用。
            android:state_checked="true/false"

true”表示勾选状态使用;“false”表示非勾选状态使用。
            android:state_enabled="true/false"

“true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。
            android:state_window_focused="true/false"

“true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如Notification栏拉下或对话框显示)。

/测试Demo/res/drawable/check_boxs.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <item android:state_checked="true" android:drawable="@drawable/shape_sku"></item>
  4.     <item android:state_pressed="true" android:drawable="@drawable/shape_sku"></item>
  5.     <item android:state_selected="true" android:drawable="@drawable/shape_sku"></item>
  6.     <item android:drawable="@drawable/shape_sku_normal"></item>
  7. </selector>


3、文字颜色的变化

/测试Demo/res/color/selector_text.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3.     <!-- 文字选中时的背景-->
  4.     <item android:state_focused="true" android:color="#DB251F"/>
  5.     <!-- 文字单击时的背景 -->
  6.     <item android:state_pressed="true" android:color="#DB251F"/>
  7.     <item android:state_checked="true" android:color="#DB251F"/>
  8.     <item android:state_selected="true" android:color="#DB251F"/>
  9.     <!-- 文字默认的背景 -->
  10.     <item android:color="#969696"/>
  11. </selector>


三、下面是自定义的两个矩形

属性解读

corners:圆角

android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,同时设置五个属性,则Radius属性无效
android:Radius="20dp"                          设置四个角的半径
android:topLeftRadius="20dp"              设置左上角的半径 
android:topRightRadius="20dp"           设置右上角的半径 
android:bottomLeftRadius="20dp"       设置右下角的半径 
android:bottomRightRadius="20dp"    设置左下角的半径

stroke:描边
android:width="2dp" 描边的宽度

android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp" 
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。

solid:填充
android:color指定填充的颜色

/测试Demo/res/drawable/shape_sku_normal.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <stroke android:width="1dp" android:color="#C8C8C8"/>
  4.     <corners android:radius="3dp"/>
  5.     <solid android:color="@android:color/white"/>
  6. </shape>


/测试Demo/res/drawable/shape_sku.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  3.     <stroke android:width="1dp" android:color="#DB251F"/>
  4.     <corners android:radius="3dp"/>
  5.     <solid android:color="@android:color/white"/>
  6. </shape>


四、效果图

 

五、   完

尊重作者劳动成果:
https://blog.csdn.net/huntersnail/article/details/47614585 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/985729
推荐阅读
相关标签
  

闽ICP备14008679号