Android屏幕上涂鸦画笔标记的实现

Android屏幕上涂鸦画笔标记的实现
呃,这个名字取得很诡异,⼤概意思就是Android程序,以当前界⾯作为背景,⽤⼿触控作为⼀个画笔来进⾏涂鸦,标记等,和PPT⾥的画笔差不多⼀个意思吧。
根据这个需求,做出了以下的思路:⾸先是要获取⼀个屏幕⼤⼩的bitmap作为底图,设置为透明⾊。然后将⼀个canvas放在bitmap 上,触控点击事件作为paint,然后就可以实现了。
操作步骤如下:
1.获取当前屏幕的长宽,获取布局和button,写出点击事件.
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
windowHeight = size.y;
windowWidth = size.x;
rl=(RelativeLayout)findViewById(lative) ;
Btn=(Button)findViewById(R.id.button);
Btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tuner接口draw();
}
});
2.设置画图相关的bitmap,canvas,paint等
mBitmap = ateBitmap(width,height,Bitmap.Config.ARGB_4444);
mBitmapPaint = new Paint(Paint.DITHER_FLAG);
mCanvas=new Canvas(mBitmap);
mPaint = new Paint();
//设置绘制⽅式
mPaint.setAntiAlias(true);  //抗锯齿状
人工挖孔桩机械
mPaint.setDither(true);
mPaint.setColor(0xff00ff00);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(5);
3.写点击事件。
public boolean onTouchEvent(MotionEvent event){
float x = X();
float y = Y();
Action()){
case MotionEvent.ACTION_DOWN:
touch_start(x, y);
invalidate();  //刷新ui界⾯
break;
case MotionEvent.ACTION_MOVE:
touch_move(x, y);
invalidate();
break;
case MotionEvent.ACTION_UP:
touch_up(x,y);
touch_up(x,y);
invalidate();
break;
}
流量测量装置
return true;
}
private float  mX,mY;
private static final  float TOUCH_TOLERANCE = 4;
private void touch_start(float x,float y){
mX = x;
mY = y;
}
private void touch_move(float x,float y){
float dx = Math.abs(x - mX);
float dy = Math.abs(y - mY);内六角螺栓
if(dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE){
mCanvas.drawLine(mX,mY,x,y,mPaint);
// mPath.quadTo(mX, mY, (x+mX)/2, (y+mY)/2);
mX = x;
mY= y;
}
}
private  void touch_up(float x,float y){
mCanvas.drawPoint(x,y,mPaint);
}
4.加载view,并再加上⼀个新的button,点击取消标记。
drawView=new DrawView(this,windowHeight,windowWidth);
//通知view组件重绘
drawView.invalidate();
远程升级
rl.addView(drawView);
btnn=new Button(this);
btnn.setText("new button");
RelativeLayout.LayoutParams btnpara=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
btnpara.addRule(RelativeLayout.CENTER_HORIZONTAL);
btnpara.addRule(RelativeLayout.CENTER_VERTICAL);
rl.addView(btnn,btnpara);
btnn.setOnClickListener(new View.OnClickListener() {
@Override
数字重阵
public void onClick(View v) {
}
});
demo效果图如下(demo做的有点粗糙,⽐如可以⽤新的button放在原来的button位置上,这样更好点):
附上实际运⽤的效果图吧:

本文发布于:2024-09-21 01:37:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/167442.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设置   作为   画笔   点击   做出   标记   屏幕
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议