如何实现onTouch功能android?

时间:2011-02-27 20:31:08

标签: android gesture

您好我想创建加载大图像的应用程序,并且可以在其上移动简单的手势。我必须将图像打印出来,但我无法实现onTouch,因此它保持静止。任何有用的帮助。谢谢

我绘制图片的代码:

@Override protected void onDraw(Canvas canvas) {
          super.onDraw(canvas);
                   Paint paint = new Paint();
            paint.setStyle(Paint.Style.FILL);

            // make the entire canvas white
            paint.setColor(Color.WHITE);
            canvas.drawPaint(paint);
paint.setStrokeWidth(1);
            paint.setPathEffect(null);
            paint.setColor(Color.GRAY);
            paint.setAntiAlias(true);


            for (int i=1; i < 100; i++){
                canvas.drawLine(0, i*1 , 600, i*20, paint);
                canvas.drawLine(i*1 ,0, i*20, 600, paint);      
            }
}

2 个答案:

答案 0 :(得分:6)

由于您已经在编写自定义视图,而不是设置侦听器,您可能希望在视图中包含GestureDetector和侦听器,最重要的是避免使用switch(e.getAction()),因为{ {1}}位于较高级别,会为您提供已被检测为手势的事件(滚动,投掷,长按......)。

查看示例here

答案 1 :(得分:3)

在您的视图中,您需要创建“OnTouchListener”,它应该如下所示:

myView.setOnTouchListener(new View.OnTouchListnener(){
    @Override
    public boolean onTouch(View v, MotionEvent e){
        switch(e.getAction()){
        case MotionEvent.ACTION_DOWN:
        //and code will go here for putting the finger on the screen

我会看看MotionEvent并查看各个级别。您需要注意它如何将几位运动信息打包成一个MotionEvent.