public class View1 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new SampleView(this));
}

private static class SampleView extends View {
private Paint paint;
public SampleView(Context context) {
super(context);
//创建Paint
paint = new Paint();
//设置抗锯齿效果
paint.setAntiAlias(true);
//设置画刷的颜色
paint.setColor(Color.BLUE);
}

@Override protected void onDraw(Canvas canvas) {
// canvas.drawColor(Color.WHITE);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new RectF(10, 10, 100, 100), paint);
canvas.drawCircle(55, 145, 45, paint);

paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(new RectF(110, 10, 200, 100), paint);
canvas.drawCircle(155, 145, 45, paint);

paint.setStyle(Paint.Style.FILL_AND_STROKE);
canvas.drawRect(new RectF(210, 10, 300, 100), paint);
canvas.drawCircle(255, 145, 45, paint);
// invalidate();
}
}
}


效果如下:



使用view画图,有两个重要的组件需要介绍:
Paint 可以理解为画刷或者画笔,去主要用来设置绘图使用的颜色、填充方式、透明度、字体以及字体样式等。
Canvas 画布,在view上显示的图形都是由canvas来绘制的。
Canvas绘图需要4个基本组件,Bitmap、Canvas、需要绘制的图形如Path、Rect等、以及Paint用来设置颜色和样式。在上面的图形中只用到了Canvas Rect Circle 和Paint

上面的代码对比了Paint的三种样式效果
Paint.Style.FILL 用颜色填充图形
Paint.Style.FILL_AND_STROKE 即绘制边框 同时也填充内部
Paint.Style.STROKE 个人理解为只绘制边框

paint.setAntiAlias(true);
这个是用来设置抗锯齿效果的。
可以通过写测试代码来看看效果。下面是没有设置抗锯齿效果的,截图不是很清晰,效果不是很明显,最好是在手机上跑跑,那样就能发现两者的差异了。

更多相关文章

  1. Qt for Android程序沉浸式启动页面(去除标题栏、去除黑屏、保留后
  2. 关于Android(安卓)Genymotion 运行DDMS报ADB server didn't ACK
  3. Android(安卓)WebView设置代理及账号密码
  4. 毛玻璃效果在Android的实现
  5. Android通知栏Notification的实现
  6. Android(安卓)UI 之WaterFall瀑布流效果 [复制链接]
  7. Android(安卓)WebView使用的技巧与一些坑
  8. Android入门——利用Canvas完成绘制点、圆、直线、路径、椭圆、
  9. OpenGL ES for Android(安卓)总览

随机推荐

  1. It’s time to kiss goodbye to your imp
  2. Android中Volley发送带有Cookie信息的请
  3. React Native使用原生UI组件
  4. recovery的一些开发点滴
  5. android lib项目注意的事项
  6. Android基础学习第一天
  7. 《Android多媒体应用开发实战详解:图像、
  8. Android(安卓)Q (十六) Android(安卓)Q
  9. Android解决SurfaceView预览Camera拉伸问
  10. Android属性动画简析