Android中的Shape,RoundRectShape,ArcShape, OvalShape
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android中的Shape,RoundRectShape,ArcShape, OvalShape,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1896字,纯文字阅读大概需要3分钟。
内容图文
![Android中的Shape,RoundRectShape,ArcShape, OvalShape](/upload/InfoBanner/zyjiaocheng/1323/b61e864a0fd04468a61fc2c45a242a1d.jpg)
在做Android的项目的时候碰到一个在在代码中动态的给一个Group添加一个有些圆角的背景没有用shape.xml文件来搞用的代码,看了好一会了才明白RoundRectShape各个参数的意思,记录下来省的以后再忘。先看官网的一个图,表示了这个几个类之间的继承关系
1. RoundRectShape
float[] outerRadii = {20, 20, 30, 30, 40, 40, 50, 50};//外矩形 左上、右上、右下、左下的圆角半径 RectF inset = new RectF(100, 100, 100, 100);//内矩形距外矩形,左上角x,y距离, 右下角x,y距离 float[] innerRadii = {20, 20, 20, 20, 20, 20, 20, 20};//内矩形 圆角半径 RoundRectShape roundRectShape = new RoundRectShape(outerRadii, inset, innerRadii); ShapeDrawable drawable = new ShapeDrawable(roundRectShape); drawable.getPaint().setColor(Color.BLACK); drawable.getPaint().setAntiAlias(true); drawable.getPaint().setStyle(Paint.Style.STROKE);//描边 mImage.setBackground(drawable);
代码中RoundRectShape(float[] outerRadii, RectF inset,float[] innerRadii)有三个参数,第一个和第二个都是8个数字数组,表示的的矩形的4个角的圆形半径,刚开始就疑惑在这个8个数字上了,怎么也想不明白,测试了几次弄懂了。 这8个数组分别从左上角开始表示各个弧度的半径,比如说左上角 左上角有两个边组成,左边和上边,第一个数字表示的左边这条边最上面的半径,第二个表示上边连接处圆形的半径,从左上角,右上角,右下角,左下角依次类推正好八个数字。第一个参数表示的外边角 第三个参数表示的内边角,也就是大矩形套小矩形。 第二个参数表示的内矩形的位置,距离大矩形左,上,右,下的距离。 如果后面两个参数都为null的话就只有一个大矩形。结果如下:
2. ArcShape 绘制圆形或者扇形
ArcShape shape = new ArcShape(0, -300); ShapeDrawable drawable = new ShapeDrawable(shape); drawable.getPaint().setColor(Color.BLACK); drawable.getPaint().setAntiAlias(true); drawable.getPaint().setStyle(Paint.Style.STROKE); mImage.setBackground(drawable);
ArcShape(float startAngle, float sweepAngle) 有两个参数,起始弧度,需要跨越的弧度,上面的例子中写的是负数,则逆时针画弧,如果是正数,则顺时针画弧. 如果是360度,则是一个圈,圆的半径即大小你的ImageView本身来决定。效果如下:
3. OvalShape 椭圆
OvalShape ovalShape = new OvalShape(); ShapeDrawable drawable = new ShapeDrawable(ovalShape); drawable.getPaint().setColor(Color.BLACK); drawable.getPaint().setAntiAlias(true); drawable.getPaint().setStyle(Paint.Style.STROKE); mImage.setBackground(drawable);
画一个椭圆,同样椭圆的宽高由你的载体来决定,我这里是ImageView,需要注意的是**如果ImageView的宽和高相等就是一个圆**,效果如下:
原文:http://www.cnblogs.com/xlurenjia/p/7657762.html
内容总结
以上是互联网集市为您收集整理的Android中的Shape,RoundRectShape,ArcShape, OvalShape全部内容,希望文章能够帮你解决Android中的Shape,RoundRectShape,ArcShape, OvalShape所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。