吧友们,画板直接画矩形,手指由右向左拖动没事
android开发吧
全部回复
仅看楼主
level 8
金士顿070 楼主
但是手指按下向左向上滑动, 就不能实时显示画的矩形,要等手松开后才显示画的矩形,这是什么原因呢
/**
* 初始化
*/
private void init() {
mCanvas = new Canvas();
creatNewPen();
DisplayMetrics metrics=getResources().getDisplayMetrics();
mBitmap = Bitmap.createBitmap(metrics.widthPixels,
metrics.heightPixels, Bitmap.Config.ARGB_8888);
mCanvas.setBitmap(mBitmap);
}
private void creatNewPen() {
mysquare = new Mysquare(10, Color.RED);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
isTouch = false;
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mCanvas.setBitmap(mBitmap);
creatNewPen();
mysquare.touchDown(x, y);
invalidate();
break;
case MotionEvent.ACTION_MOVE:
mysquare.touchMove(x, y);
invalidate();
break;
case MotionEvent.ACTION_UP:
mysquare.touchUp(x, y);
mysquare.draw(mCanvas);
invalidate();
isTouch = true;
break;
}
return true;
}
@Override
protected void onDraw(Canvas canvas) {
if (mBitmap != null) {
canvas.drawBitmap(mBitmap, 0, 0, null);
}
if (null != mysquare) {
if (!isTouch) { //调用绘图功能
mysquare.draw(canvas);
}
}
}
2016年05月07日 08点05分 1
level 8
金士顿070 楼主
[泪]这到底是怎么回事啊
2016年05月07日 08点05分 2
level 1
楼主知道什么原因么?
2017年02月08日 03点02分 6
level 7
我没做过图片的旋转拖拽希望说错了能指正,也学习一下
2017年02月08日 07点02分 7
level 7
@Override
protected void onDraw(Canvas canvas) {
if (mBitmap != null) {
canvas.drawBitmap(mBitmap, 0, 0, null);
}
if (null != mysquare) {
if (!isTouch) { //调用绘图功能
mysquare.draw(canvas);
}
}
}
你这一段代码中的 canvas.drawBitmap(maBitmap,0,0,null);参数值写的是空值应该是bitmap(图片),metrics(矩阵),Point(位置坐标点)这三个参数吧你每次draw之前都要去调整view的位置这样才能在拖动中看到效果 根据metrics重新绘制view吧 不知道说的对不对 说错了还请见谅
2017年02月08日 07点02分 8
1