通过Canvas 和paint进行顶点绘制

原理基本一样,这里就是根据坐标点,然后通过画笔进行画圆画线,画文字,关于文字,刚好在大圆中心位置,获得文字宽高,然后在画文字到时候,更改其坐标就可以了

/*** Created by adminZPH on 2016/12/22.*/
public class MyTableView extends View{private int mRadius;private int mJianju;private int seatnumber=10;//默认是10个防止出错private int seatnumbernumber=0;private int xx;private int yy;private Paint p1,p2,p3;private int number;private Context context;public MyTableView(Context context,int seatnumber,int seatnumbernumber,int xx,int yy,int number) {this(context,null, 0,seatnumber,seatnumbernumber,xx,yy,number);}public MyTableView(Context context, AttributeSet attrs, int defStyle,int seatnumber,int seatnumbernumber,int xx,int yy,int number){super(context, attrs, defStyle);this.context=context;this.seatnumber=seatnumber;this.seatnumbernumber=seatnumbernumber;this.xx= (int) SizeUtils.pxTodp(context,xx);this.yy= (int) SizeUtils.pxTodp(context,yy);this.mRadius=20;this.mJianju=30;this.number=number;}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);// 创建画笔//首先画大圆Paint p = new Paint();//设置实心p.setStyle(Paint.Style.FILL);// 设置红色p.setColor(Color.parseColor("#FAE4E7"));// 设置画笔的锯齿效果p.setAntiAlias(true);p.setStrokeWidth(0.5f);//绘制canvas.drawCircle(xx, yy,mRadius, p);//然后画小圆for(int i=0;i<seatnumber;++i){Paint p1 = new Paint();//设置实心p1.setStyle(Paint.Style.FILL);// 设置红色p1.setColor(Color.parseColor("#6e6e6e"));// 设置画笔的锯齿效果p1.setAntiAlias(true);p1.setStrokeWidth(0.5f);//绘制int cl = (int) (xx+mJianju*Math.sin((360/seatnumber*i)*Math.PI/180));int ct = (int) (yy-mJianju*Math.cos((360/seatnumber*i)*Math.PI/180));canvas.drawCircle(cl,ct,5, p1);}//画文字  桌子序列号// 绘文字   // 设置颜色  Paint paint = new Paint();paint.setColor(Color.WHITE);int sp=(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,12, //多少spcontext.getResources().getDisplayMetrics());//屏幕的密度paint.setTextSize(sp);//获得输入字的宽高,保证文字在大圆的中心Rect bounds=new Rect();paint.getTextBounds("01", 0,1, bounds);float x,y;x=xx-bounds.width()+2;y=yy+bounds.height()/2;// 绘文字 if(number<10) {canvas.drawText("0"+(number+1), x, y,paint);}elsecanvas.drawText(String.valueOf(number+1), x, y,paint);}

然后在Activity中进行调用:

 //2代表序号,15个椅子,1个桌子,宽高个100MyTableView mMyTableView=new MyTableView(this,15,1,100,100,2);mMyTableView.invalidate();//通知重绘//然后和以通过addView(mMyTableView)即可

Android画桌子椅子的方法面板和画笔(二)相关推荐

  1. Android中画桌子椅子的几种方法(动态添加座子椅子)(一)

    第一种:自定义View继承ViewGroup实现 自定义viewgroup,通过对xml中的每个控件获取他们的宽高,然后根据三角函数关系进行位置的放置 onMeasure是测量每个子控件的宽高 onL ...

  2. Android 圆形/圆角图片的方法

    Android 圆形/圆角图片的方法 眼下网上有非常多圆角图片的实例,Github上也有一些成熟的项目.之前做项目,为了稳定高效都是选用Github上的项目直接用.但这样的结束也是Android开发必 ...

  3. android Bimtap 各种图片处理方法、图片特效

    原帖地址:http://gundumw100.iteye.com/blog/849729 Java代码   //压缩图片大小 public static Bitmap compressImage(Bi ...

  4. cad画不规则实体_cad画不规则曲线的方法步骤图

    CAD绘制图形非常之多,那么大家知道cad怎么画不规则曲线吗?下面是学习啦小编整理的cad画不规则曲线的方法,希望能给大家解答. cad画不规则曲线的方法 1.单击AutoCAD2013工具栏&quo ...

  5. android截屏代码实现方法

    最近由于项目需要,在学习android系统.android是一个基于linux的专门针对手机平台的操作系统.当然,现在的android 3似乎也将进入平板电脑的市场.由于至今为止,大部分的智能手机采用 ...

  6. 强制开启Android Webview GPU 加速的方法

    强制开启Android Webview GPU 加速的方法 常用方法 浏览器开启GPU加速可以让渲染的性能更好,可以有效的利用硬件的能力来提高页面的绘制帧率.在安卓平台使用webview的场景下,开发 ...

  7. [转载]android 画虚线、实线,画圆角矩形,一半圆角

    [转载]android 画虚线.实线,画圆角矩形,一半圆角 (2013-03-19 12:38:12) 转载▼ 标签: 转载 分类: android 原文地址:android 画虚线.实线,画圆角矩形 ...

  8. unity3d android包太大了,unity/unity3d编译成android apk包瘦身方法

     unity/unity3d编译成android apk包瘦身方法 本文系原创,请转发的朋友带上我的链接. 相信用unity开发的同学都会遇到类似的经历:明明资源图片不大,但是发现打包后apk文件 ...

  9. Xposed: 勾住(Hook) Android应用程序对象的方法,实现AOP

    Xposed Xposed能够勾住(Hook) Android应用程序对象的方法,实现AOP,一个简单的例子: public class WebViewHook implements IXposedH ...

最新文章

  1. R语言构建回归模型并获取对于新数据预测的预测区间实战:给出预测区间而不是一个具体的预测值、置信区间与预测区间的异同
  2. 4篇SCI,获得多次国奖,这个硕士小姐姐分享科研之路
  3. gradle加载spring包
  4. SQL基础【十五、join、Inner join、Left join、Right join、Full join】
  5. matlab 性能分析方法,DPCM,PSK系统的MATLAB实现及性能分析
  6. Android Studio 开始运行错误
  7. 在mysql中建立聚簇索引_给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引...
  8. Windows Phone 8初学者开发—第7部分:本地化应用程序
  9. 58. magento quote lifetime
  10. 阿里云国际版CDN 安全保护指南:管理篡改、攻击和内容
  11. Unity InControl插件 按键映射对照表
  12. 濡沫江湖一直显示获取服务器地址,濡沫江湖霜儿剧情任务怎么完成?霜儿专属剧情任务接取以及完成攻略...
  13. 邮件经常失败回弹很糟心?一定要知道这几个小知识
  14. python--生成器
  15. lazada数据分析采集软件,各国市场第一视角帮你分析!
  16. CS很难发论文?这些技巧你都get了吗?
  17. PLSQL查看所连接的ORACLE的版本
  18. wd 文件服务器客服电话,wd 云服务器
  19. 2020-11-17
  20. 汶川地震纪念感人mv《孩子快抓紧妈妈的手》

热门文章

  1. LaTeX表格自定义行高+自定义列宽+大表格自适应页面宽度
  2. python高级---协程---放飞自我
  3. about face3 交互设计精髓 【理解目标导向设计】
  4. 数字经济产品与服务(移动互联)
  5. Linux OpenGL 实践篇-11-shadow
  6. Android创建无用文件,在Android中清理不必要的废料-空文件夹和无用的文件
  7. 数说金融-宁德时代储能业务对上游企业拥有极高话语权
  8. 洛谷P2839 [国家集训队]middle(主席树)
  9. 我的第一个上位机软件
  10. 支付宝手机网页支付java demo调试问题和解决办法