赞
踩
【声明】此文出自指尖飞落的博客:http://blog.csdn.net/huntersnail
——每天写一篇博客,每天做一点技术积累!
Android自定义矩形及selector、shape的使用
由于项目开发需要,以前虽然用过selector、shape但是都没有好好去研究过,只知道用,不知道它们的属性具体有哪些作用。虽然网上一查就都知道了,感觉还是要自己去弄懂一下。
下面咱们一起去研究下:
/测试Demo/res/layout/check_box.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <LinearLayout
- android:id="@+id/order_meth"
- style="@style/style_padding"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:background="@drawable/selector_mine"
- android:orientation="horizontal" >
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="送达方式"
- android:textSize="18sp" />
-
- <RadioGroup
- android:id="@+id/type"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:orientation="horizontal" >
-
- <RadioButton
- android:id="@+id/rb_one"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="@style/sku_rd"
- android:layout_marginLeft="20dp"
- android:gravity="center"
- android:checked="true"
- android:padding="10dp"
- android:text="一小时达" />
-
- <RadioButton
- android:id="@+id/rb_two"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="@style/sku_rd"
- android:layout_marginLeft="10dp"
- android:gravity="center"
- android:padding="10dp"
- android:text="预定送达" />
- </RadioGroup>
- </LinearLayout>
-
- </LinearLayout>
1、style样式
- <resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="sku_rd">
- <item name="android:textColor">@color/selector_text</item>
- <item name="android:background">@drawable/check_boxs</item>
- <item name="android:button">@null</item><!--去掉RadioButton的那个圆形-->
- </style>
- </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
- <?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/shape_sku"></item>
- <item android:state_pressed="true" android:drawable="@drawable/shape_sku"></item>
- <item android:state_selected="true" android:drawable="@drawable/shape_sku"></item>
- <item android:drawable="@drawable/shape_sku_normal"></item>
- </selector>
3、文字颜色的变化
/测试Demo/res/color/selector_text.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- 文字选中时的背景-->
- <item android:state_focused="true" android:color="#DB251F"/>
- <!-- 文字单击时的背景 -->
- <item android:state_pressed="true" android:color="#DB251F"/>
- <item android:state_checked="true" android:color="#DB251F"/>
- <item android:state_selected="true" android:color="#DB251F"/>
- <!-- 文字默认的背景 -->
- <item android:color="#969696"/>
- </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
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android" >
- <stroke android:width="1dp" android:color="#C8C8C8"/>
- <corners android:radius="3dp"/>
- <solid android:color="@android:color/white"/>
- </shape>
/测试Demo/res/drawable/shape_sku.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android" >
- <stroke android:width="1dp" android:color="#DB251F"/>
- <corners android:radius="3dp"/>
- <solid android:color="@android:color/white"/>
- </shape>
尊重作者劳动成果:
https://blog.csdn.net/huntersnail/article/details/47614585
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。