Android编程之手绘

不记得哪里获得的一段代码,是通过手指触屏在手机上绘制内容,贴出原代码供大家参考:

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

class TestView extends View {

	public Canvas canvas;
	public Paint p;
	private Bitmap bitmap;
	float x,y;
	int bgColor;

	public TestView(Context context) {
		super(context);
		bgColor = Color.WHITE;               //设置背景颜色
		bitmap = Bitmap.createBitmap(480, 480, Bitmap.Config.ARGB_8888);    //设置位图,线就画在位图上面,第一二个参数是位图宽和高
		canvas=new Canvas();         
		canvas.setBitmap(bitmap);       
		p = new Paint(Paint.DITHER_FLAG);
		p.setAntiAlias(true);                //设置抗锯齿,一般设为true
		p.setColor(Color.RED);              //设置线的颜色
		p.setStrokeCap(Paint.Cap.ROUND);     //设置线的类型
		p.setStrokeWidth(8);                //设置线的宽度
		
	}
    
	
	//触摸事件
	@Override
	public boolean onTouchEvent(MotionEvent event) {

		if (event.getAction() == MotionEvent.ACTION_MOVE) {    //拖动屏幕
			canvas.drawLine(x, y, event.getX(), event.getY(), p);   //画线,x,y是上次的坐标,event.getX(), event.getY()是当前坐标
			invalidate();
		}

		if (event.getAction() == MotionEvent.ACTION_DOWN) {    //按下屏幕
			x = event.getX();				
			y = event.getY();
			canvas.drawPoint(x, y, p);                //画点
			invalidate();
		}
		if (event.getAction() == MotionEvent.ACTION_UP) {    //松开屏幕
		}
		x = event.getX();   //记录坐标
		y = event.getY();
		return true;
	}
	
	@Override
	public void onDraw(Canvas c) {			    		
		c.drawBitmap(bitmap, 0, 0, null);	      
	}
 }


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值