一个简单的绘图示例 [英] A simple drawing Example

查看:130
本文介绍了一个简单的绘图示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这code应该借鉴的东西,但是当我移动我的手指不画任何东西。请帮我调试。

  @覆盖  保护无效的onDraw(帆布油画){
    canvas.drawPath(路径,油漆);
  }
  @覆盖
  公共布尔onTouchEvent(MotionEvent事件){
    浮eventX = event.getX();
    浮eventY = event.getY();    开关(event.getAction()){
      案例MotionEvent.ACTION_DOWN:
        path.moveTo(eventX,eventY);
        返回true;
      案例MotionEvent.ACTION_MOVE:
        path.lineTo(eventX,eventY);
        打破;
      案例MotionEvent.ACTION_UP:
        // 没事做
        打破;
      默认:
        返回false;
    }    //时间表重绘。
    无效();
    返回true;
  }
}


解决方案

试试这个

  @覆盖  保护无效的onDraw(帆布油画)
  {
    canvas.drawPath(路径,油漆);
  }
  @覆盖
  公共布尔onTouchEvent(MotionEvent事件){
    浮eventX = event.getX();
    浮eventY = event.getY();    开关(event.getAction()){
      案例MotionEvent.ACTION_DOWN:
        path.moveTo(eventX,eventY);
        path.lineTo(eventX,eventY);
        返回true;
      案例MotionEvent.ACTION_MOVE:
        path.quadTo(eventX,eventY,(X + eventX)/ 2,(Y + eventY)/ 2);
        打破;
      案例MotionEvent.ACTION_UP:
        canvas.drawPath(路径,油漆);
        //杀死这个,所以我们不要双击平局
     path.reset();
        打破;
      默认:
        返回false;
    }    //时间表重绘。
    无效();
    返回true;
  }
}

有关详细信息,看一看

<一个href=\"http://$c$c.google.com/p/strokesformartians/source/browse/trunk/src/se/combitech/strokesformartians/drawing/FingerPaint.java?r=120\" rel=\"nofollow\">http://$c$c.google.com/p/strokesformartians/source/browse/trunk/src/se/combitech/strokesformartians/drawing/FingerPaint.java?r=120

这可能会帮助你。

This code should be drawing things, but it doesn't draw anything when I move my finger. Please help me debug it.

  @Override

  protected void onDraw(Canvas canvas) {
    canvas.drawPath(path, paint);
  }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    float eventX = event.getX();
    float eventY = event.getY();

    switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
        path.moveTo(eventX, eventY);
        return true;
      case MotionEvent.ACTION_MOVE:
        path.lineTo(eventX, eventY);
        break;
      case MotionEvent.ACTION_UP:
        // nothing to do 
        break;
      default:
        return false;
    }

    // Schedules a repaint.
    invalidate();
    return true;
  }
} 

解决方案

Try this

@Override

  protected void onDraw(Canvas canvas)
  {
    canvas.drawPath(path, paint);
  }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    float eventX = event.getX();
    float eventY = event.getY();

    switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
        path.moveTo(eventX, eventY);
        path.lineTo(eventX, eventY);
        return true;
      case MotionEvent.ACTION_MOVE:
        path.quadTo(eventX, eventY, (x + eventX)/2, (y + eventY)/2);
        break;
      case MotionEvent.ACTION_UP:
        canvas.drawPath(path, paint);
        // kill this so we don't double draw
     path.reset();
        break;
      default:
        return false;
    }

    // Schedules a repaint.
    invalidate();
    return true;
  }
} 

For more information take a look

http://code.google.com/p/strokesformartians/source/browse/trunk/src/se/combitech/strokesformartians/drawing/FingerPaint.java?r=120

This may help you.

这篇关于一个简单的绘图示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆