D6-Android绘图之一言不合画个表

作者: e4e52c116681 | 来源:发表于2018-09-07 10:44 被阅读11次

零、前言

[1].本控件绘图部分使用我的LogicCanvas绘图库:基础使用在此
[2].喜欢的话可以到github上看看,顺便给个star
[3].发现向量还怪好用的,它不会出现在屏幕上,但却能支撑图形的形状
[4].也许这是绘图篇的最后一篇了,还要总结其他方面的知识点,以后有机会一定再深入探究一下。
[5].时间指针是通过角度确定的,所以让它们转起来很简单,就不演示了

效果图
效果图 device-2018-09-07-103155.png

成员变量

protected Pos pos = new Pos(0, 0);//点
protected ShapeLine sl = new ShapeLine();//线
protected ShapeText st = new ShapeText();//文字
protected ShapeArc sa = new ShapeArc();//圆弧
private Pos coo = v2(500, 800);//坐标系原点
private int mDotWith = 3;
private int mDotColor = 3;

绘制方法

Painter painter = PainterEnum.INSTANCE.getInstance(canvas);
//绘制网格
//CanvasUtils.drawGrid(getContext(), 50, canvas);
//绘制坐标系
//CanvasUtils.drawCoord(getContext(), coo, 50, canvas);
//绘制60个小线
for (int i = 0; i < 60; i++) {
    ShapeLine a = null;
    if (i % 5 == 0) {
        a = (ShapeLine) sl.deepClone().ang(i * 6f).c(260f).parse().coo(coo);
        mDotWith = 5;
        mDotColor = ColUtils.randomRGB();
    } else {
        a = (ShapeLine) sl.deepClone().ang(i * 6f).c(280f).parse().coo(coo);
        mDotWith = 3;
        mDotColor = Color.BLUE;
    }
    ShapeLine b = a.deepClone().c(300f).v(null).parse();
    Shape c = sl.deepClone().ps(a.mv, b.mv).coo(coo).b(mDotWith).ss(mDotColor);
    //绘制小圆点
    painter.draw(c);
    if (i % 5 == 0) {
        painter.draw(sa.deepClone().r(4).ang(360).fs(Color.BLACK).p(a.mv).coo(coo));
    
}
//绘制四个圆弧
for (int i = 0; i < 4; i++) {
    Shape circle = sa.deepClone().r(350).ang(70).coo(this.coo).b(3).ss(Color.parseColor("#D4DA")).rot(10 + 90 * i).b(6);
    painter.draw(circle);
}
//绘制文字
painter.drawText(st.deepClone().size(70).str("Ⅲ").p(coo.add(350, 30)));
painter.drawText(st.deepClone().size(70).str("Ⅵ").p(coo.add(0, 350 + 30)));
painter.drawText(st.deepClone().size(70).str("Ⅸ").p(coo.add(-350, 30)));
painter.drawText(st.deepClone().size(70).str("Ⅻ").p(coo.add(0, -350 + 30)));
painter.drawText(st.deepClone().size(35).str("Toly").p(coo.add(0, -180)));
//绘制小圆
Shape center1 = sa.deepClone().ang(270f).r(25).coo(this.coo).b(5).ss(Color.parseColor("#6B6B6B);
Shape center2 = sa.deepClone().ang(360).r(15).coo(this.coo).b(5).fs(Color.GRAY);
Shape center3 = sa.deepClone().ang(360).r(5).coo(this.coo).fs(Color.BLACK);
//绘制指针
Shape secLine =  sl.deepClone().ang(-90f).c(330f).coo(this.coo).b(2).ss(Color.parseColor("#6B6B6B"));
Shape hourLine =  sl.deepClone().ang(45f).c(150f).coo(this.coo).b(8).ss(Color.parseColor("#8FC552"));
Shape minLine =  sl.deepClone().ang(145f).c(250f).coo(this.coo).b(8).ss(Color.parseColor("#87B953"));
        
painter.draw(center1, secLine, hourLine, minLine, center2, center3);

OK,就这么简单。


后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明
[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力

2.连接传送门:

更多安卓技术欢迎访问:安卓技术栈
我的github地址:欢迎star
简书首发,腾讯云+社区同步更新
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

3.联系我

QQ:1981462002
邮箱:1981462002@qq.com
微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
公众号.jpg

相关文章

  • D6-Android绘图之一言不合画个表

    零、前言 [1].本控件绘图部分使用我的LogicCanvas绘图库:基础使用在此,[2].喜欢的话可以到gith...

  • Android原生绘图之一起画个表

    零、前言 前几天介绍了一大堆Android的Canvas,Paint,Path的API,接下来将是灵活地使用他们今...

  • 梁光林先生文档暂存之一

    梁光林先生文档暂存之一 陈子昂诗歌译评绘图全本(共三卷) 梁光林先生著诗配画——陈子昂诗歌译评绘图全本(共三卷) ...

  • 救命稻草

    一言不合就关机 一言不合就走 一言不合就放弃 不要去里面拣鸡肋 一找 就是不爱了 一言不合就扔 —— 一个现代儿童...

  • 『066』雪景临摹

    绘图软件:AI,PS 绘图步骤: AI画矢量图 1.山坡:用铅笔工具画山坡,钢笔工具画雪山,结合原味粘贴复制和橡皮...

  • 比起一言不合更可怕的( )?

    朋友开玩笑总会调侃到:一言不合就吸烟(老烟鬼)、一言不合就开车(老司机)、一言不合就…… 似乎习惯了这种一言不合事...

  • 生物信息神奇网站系列(十三):数据可视化Catalogue

    前面已经介绍过R与Python绘图的Gallery,不过还有一个问题就是,如何知道每种绘图所表现的内容,例如如何表...

  • 2018-07-02

    识别实体 打卡机 职员 ER图绘图111.jpg 数据表新建 Microsoft Office Visio 绘图...

  • 绘图《求捎带》

    —绘图软件/画世界 我求女儿帮我画的绘图,她刚好暑假在家,还没开学,这幅图,让我催了多次,好话说了一箩筐,画...

  • 一言不合去旅行

    我们组了一个团,叫一言不合旅行团。名副其实的一言不合。约好下午六点准时出发去西宁,可是一言不合就拖到了七点...

网友评论

    本文标题:D6-Android绘图之一言不合画个表

    本文链接:https://www.haomeiwen.com/subject/udnqgftx.html