android自定义大括弧
来源:互联网 发布:期货行情数据接口 编辑:程序博客网 时间:2024/06/06 03:58
前几天和公司的android大神聊天,提到他之前写了一个自定义的大括弧控件,面试的时候,难倒了很多人。当时闲着没事,也试了试,发现的确有点难度,也没做出来。刚好这两天做了一些自定义View,所以就又尝试着,写了写。发现其实也不算特别难。最后出来的效果,就是下面这4条大括弧:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Bitmap bitmap = Bitmap.createBitmap(mWidth,mHeight, Bitmap.Config.ARGB_8888); canvas.drawBitmap(bitmap, 0, 0, null); Canvas c = new Canvas(bitmap); //设定弧线的高度和宽度都是30 switch (type) { case TOP_LEFT: RectF rectF2 = new RectF(0,0,30,30); c.drawArc(rectF2,270,angle,false,paint); c.drawLine(30, 10, 30, 220, paint); break; case TOP_RIGHT: RectF rectF1 = new RectF(0,0,30,30); c.drawArc(rectF1,180,angle,false,paint); c.drawLine(0, 10, 0, 220, paint); break; case BOTTOM_LEFT: RectF rectF3 = new RectF(0,200,30,230); c.drawArc(rectF3,0,angle,false,paint); c.drawLine(30, 0, 30, 220, paint); break; case BOTTOM_RIGHT: RectF rectF4 = new RectF(0,200,30,230); c.drawArc(rectF4,90,angle,false,paint); c.drawLine(0, 0, 0, 220, paint); break; } }本身倒不算特别难,需要注意的就是2点:1、如何把握直线和弧线的焦点坐标 2、控制弧线绘制的角度,尤其是第2点理解起来,要更难一些。
下面这个图,是android中,绘制弧形时,起始角度所在位置:而且在绘制过程中,都是按照顺时针进行绘制。
(如果最上面开始算的话,依次下来就是,-90,90,180,270)
源码下载~
0 0
- android自定义大括弧
- 大括弧之战
- visio怎么画大括弧
- visio画大括号(大括弧)
- 大括弧之战 代码风格
- 括弧匹配
- 括弧匹配
- MAC系统中,更改XCode自带的大括弧位置
- Android五大布局及自定义布局
- 括弧匹配检验
- android五大组件之广播机制---自定义广播
- Android自定义ScrollView分段加载大文本数据到TextView
- Android自定义ScrollView分段加载大文本数据到TextView
- Android自定义ScrollView分段加载大文本数据到TextView
- Android自定义控件 —— 三大流程
- Android自定义ScrollView分段加载大文本数据到TextView
- Android自定义view之measure、layout、draw三大流程
- 用栈实现括弧匹配
- algrothm_面试算法
- 写文件
- [leetcode] 208. Implement Trie (Prefix Tree) 解题报告
- js正则表达式
- C++ Primer 5th - 1.5 类
- android自定义大括弧
- MXnet: RuntimeError: module compiled against API version a but this version of numpy is 9
- [POJ3352]Road Construction 做题笔记
- OSI七层模型详解
- 利用牛顿法接非线性方程组的Matlab程序实例
- 当数据不够一屏时 实现collectionView的滑动
- matlab随机数
- SQL-select
- [疯狂Java]UDP:接收发送数据报、获取接收到的数据报的相关信息