您好我想创建加载大图像的应用程序,并且可以在其上移动简单的手势。我必须将图像打印出来,但我无法实现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);
}
}
答案 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.