Android Canvas 两种使用方式

From:http://blog.csdn.net/androiddevelop/article/details/8267312

一、Canvas第一种使用方式


最简单的使用Canvas, 画一个方形,一行字。 下面是效果图




  1. public class CustomView extends View {  
  2.   
  3.     private Paint mPaint;  
  4.       
  5.     public CustomView(Context context) {  
  6.     super(context);  
  7.     }  
  8.       
  9.     public CustomView(Context context, AttributeSet attrs) {  
  10.     super(context, attrs);  
  11.       
  12.         mPaint = new Paint();    
  13.         mPaint.setColor(Color.GREEN);    
  14.         mPaint.setTextSize(36);    
  15.             
  16.     }  
  17.   
  18.     @Override  
  19.     protected void onDraw(Canvas canvas) {  
  20.     super.onDraw(canvas);  
  21.   
  22.         mPaint.setStyle(Style.FILL); //设置填充     
  23.         canvas.drawRect(1010200200, mPaint); //绘制矩形     
  24.             
  25.         mPaint.setColor(Color.BLUE);    
  26.         canvas.drawText("我不是自定义View"10120, mPaint);    
  27.     }  
public class CustomView extends View {

    private Paint mPaint;
    
    public CustomView(Context context) {
	super(context);
    }
    
    public CustomView(Context context, AttributeSet attrs) {
	super(context, attrs);
	
	    mPaint = new Paint();  
        mPaint.setColor(Color.GREEN);  
        mPaint.setTextSize(36);  
          
    }

    @Override
    protected void onDraw(Canvas canvas) {
	super.onDraw(canvas);

	    mPaint.setStyle(Style.FILL); //设置填充  
        canvas.drawRect(10, 10, 200, 200, mPaint); //绘制矩形  
          
        mPaint.setColor(Color.BLUE);  
        canvas.drawText("我不是自定义View", 10, 120, mPaint);  
    }



参考资料:

android图形系统详解一:Canvas

android Canvas类介绍

Android Graphic : apk and Skia/OpenGL|ES


二、Canvas第二种使用方式

Canvas的使用通常只有两种形式:

1.  在已有的Canvas上绘制图形或文字,通过VIew.onDraw回调获取Canvas对象。Canvas第一种使用方式

2.  图形或文字直接绘制到View上(本文使用此种方式)


  1. public class MainActivity extends Activity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.activity_main);  
  7.           
  8.         Bitmap b =Bitmap.createBitmap(100100, Bitmap.Config.ARGB_8888);  
  9.         Canvas canvas =new Canvas(b);  
  10.           
  11.         Paint paint = new Paint();  
  12.         paint.setColor(Color.BLUE);  
  13.         canvas.drawText("love_world_"2020, paint);  
  14.           
  15.         ImageView imageView = (ImageView) findViewById(R.id.image_view);  
  16.         BitmapDrawable bitmapDrawable = new BitmapDrawable(b);  
  17.         imageView.setBackgroundDrawable(bitmapDrawable);  
  18.     }  
  19.   
  20. }  
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Bitmap b =Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
		Canvas canvas =new Canvas(b);
		
		Paint paint = new Paint();
		paint.setColor(Color.BLUE);
		canvas.drawText("love_world_", 20, 20, paint);
		
		ImageView imageView = (ImageView) findViewById(R.id.image_view);
		BitmapDrawable bitmapDrawable = new BitmapDrawable(b);
		imageView.setBackgroundDrawable(bitmapDrawable);
	}

}



效果图





Android入门第十四篇之画图

http://blog.csdn.net/hellogv/article/category/761980

Andriod中绘(画)图----Canvas的使用详解

http://blog.csdn.net/qinjuning/article/details/6936783

Android图像处理之Bitmap类
http://blog.csdn.net/thl789/article/details/6762030

Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

http://blog.csdn.net/rhljiayou/article/details/7212620

画了个Android——Canvas类的使用

http://blog.sina.com.cn/s/blog_61ef49250100qw9x.html

Android Canvas rotate

http://verydemo.com/demo_c131_i3507.html





Android入门第十四篇之画图

http://blog.csdn.net/hellogv/article/category/761980


Andriod中绘(画)图----Canvas的使用详解

http://blog.csdn.net/qinjuning/article/details/6936783




Android图像处理之Bitmap类
http://blog.csdn.net/thl789/article/details/6762030


Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

http://blog.csdn.net/rhljiayou/article/details/7212620


画了个Android——Canvas类的使用

http://blog.sina.com.cn/s/blog_61ef49250100qw9x.html


Android Canvas rotate

http://verydemo.com/demo_c131_i3507.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值