Android编程之手绘 ,画图
2014-04-03 17:00
344 查看
不记得哪里获得的一段代码,是通过手指触屏在手机上绘制内容,贴出原代码供大家参考:
[java]
view plaincopy
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);
}
}
[java]
view plaincopy
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);
}
}
相关文章推荐
- Android编程之手绘
- 云图-最有爱的画图涂鸦手绘作品册概念的iPad APP
- Android画图之setXfermode处理两图相交叉的情况
- nf使用 Python 的 turtle 模块画图
- MATLAB画图如何标记特殊点
- 界面设计需要好手绘
- Android编程实现获得手机屏幕真实宽高的方法
- Android编程中EditText限制文字输入的方法
- Android编程实现手机自带内部存储路径的获取方法
- UML画图文档总结
- java web服务器上画图不显示的问题
- matplotlib画图
- JS+HTML5的Canvas画图模拟太阳系运转
- Android编程实现手绘及保存为图片的方法(附demo源码下载)
- echarts画图
- 【剑指offer】4.2画图让抽象问题形象化——面试题20:顺时针打印矩阵
- Android编程之四种Activity加载模式分析
- Android编程开发之EditText中inputType属性小结
- C#例子之画图
- 转:画图工具