【Android UI】 Shape详解
2016-01-08 16:22
141 查看
在Android开发过程中,经常需要改变控件的默认样式, 那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片。 这样就容易使apk变大。
那么除了使用drawable这样的图片外,还有其他方法吗?
本次就谈一下自定义图形shape,Android上支持以下几种属性shape、gradient、stroke、corners、padding、solid等。
先来看两个例子:
效果:
效果:
总结一下Shape的所有子属性,如图:
简单说明一下:
gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。
solid -- 填充。
stroke -- 描边。
corners -- 圆角。
padding -- 定义内容离边界的距离。 与android:padding_left、android:padding_right这些是一个道理。
上面这些不是本讲重点。 本讲的重点是这些xml中属性,与Java类的对应关系, 以及如何使用Java类写出上面一样的效果!
首先来看对应关系:
父节点 shape -- ShapeDrawable
[子节点] gradient --
[子节点] padding --
[子节点] corners -- setCornerRadius 、setCornerRadii
[子节点] solid --
[子节点] stroke -- setStroke
[子节点] size -- setSize
发现只有几个是可以对应的~~ 看来通过Java代码来实现上述是行不通的..
那么除了使用drawable这样的图片外,还有其他方法吗?
本次就谈一下自定义图形shape,Android上支持以下几种属性shape、gradient、stroke、corners、padding、solid等。
先来看两个例子:
效果:
效果:
总结一下Shape的所有子属性,如图:
简单说明一下:
gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。
solid -- 填充。
stroke -- 描边。
corners -- 圆角。
padding -- 定义内容离边界的距离。 与android:padding_left、android:padding_right这些是一个道理。
上面这些不是本讲重点。 本讲的重点是这些xml中属性,与Java类的对应关系, 以及如何使用Java类写出上面一样的效果!
首先来看对应关系:
父节点 shape -- ShapeDrawable
[子节点] gradient --
[子节点] padding --
[子节点] corners -- setCornerRadius 、setCornerRadii
[子节点] solid --
[子节点] stroke -- setStroke
[子节点] size -- setSize
发现只有几个是可以对应的~~ 看来通过Java代码来实现上述是行不通的..
相关文章推荐
- uva 11572 - Unique Snowflakes
- UIScrollView页面
- sparksql语法,读parquet,load,save
- UITableView的折叠收缩和QQ好友分组效果
- java中int和integer,String,StringBuffer,StringBuilder的区别
- 视频音量控制器UISlider
- RoboGuice 解析
- iOS开发 UI UICollectionView 瀑布流
- UITableView总结
- crtmpserver 在VS2010下的build
- java生成UUID通用唯一识别码 (Universally Unique Identifier)
- UVa1151 Buy or Build
- IOS开发~UISCrollView与UITableView嵌套使用终极解决方案
- 在UIView页面执行pushViewController操作
- iOS Newbie - Xcode 7 & iOS 9 UITextField & UITextView
- UEditor图片路径-从后台传递参数
- 自定义UISlider的样式和滑块
- 01-08 UICollectionView 例子
- UISlider自定义高度
- UIAlertController中添加DatePicker