`
fuerbosi
  • 浏览: 464012 次
文章分类
社区版块
存档分类
最新评论

Android学习心得(一)——绘图

 
阅读更多

Android学习心得(一)——绘图

文章分类:移动开发

做java的都知道,绘图肯定首先需要一个Canvas,然后在用Graphics在上面绘制自己想要图案。不错,Android上面也类似,你可以从一个Bitmap得到它的Canvas,进行绘制,也可以自定义一个View,用它的Canvas。不同的时,Android里没有Graphics,而用Paint代之,当然用法也稍有不同。以下是自定义View的一段代码:
Java代码 复制代码
  1. @Override
  2. publicvoidonDraw(Canvascanvas){
  3. //首先定义一个paint
  4. Paintpaint=newPaint();
  5. //绘制矩形区域-实心矩形
  6. //设置颜色
  7. paint.setColor(Color.WHITE);
  8. //设置样式-填充
  9. paint.setStyle(Style.FILL);
  10. //绘制一个矩形
  11. canvas.drawRect(newRect(0,0,getWidth(),getHeight()),paint);
  12. //绘空心矩形
  13. //设置颜色
  14. paint.setColor(Color.RED);
  15. //设置样式-空心矩形
  16. paint.setStyle(Style.STROKE);
  17. //绘制一个矩形
  18. canvas.drawRect(newRect(10,10,50,20),paint);
  19. //绘文字
  20. //设置颜色
  21. paint.setColor(Color.GREEN);
  22. //绘文字
  23. canvas.drawText(str,30,30,paint);
  24. //绘图
  25. //从资源文件中生成位图
  26. Bitmapbitmap=BitmapFactory.decodeResource(getResources(),R.drawable.icon);
  27. //绘图
  28. canvas.drawBitmap(bitmap,10,10,paint);
  29. }


以上需要注意的有三点:
1、Android中的Rect和java中的可能稍有区别,前两个参数是左上角的坐标,后两个参数是右下角的坐标(不是宽度和高度);
2、Style.STROKE和Style.FILL外边的像素数是有区别的,这点和java里一样;
3、绘文字时,设置的坐标点为(30,30),但绘出来后你会发现,文字的左上角坐标要比你设置的偏上,不知道是android设置的bug,还是我们有理解到坐标点的意义。
分享到:
评论
Global site tag (gtag.js) - Google Analytics