2016-05-25 2 views
0

Я пытаюсь прикрепить изображение к детектору жестов со следующим кодом. Я хочу на первом месте с этим кодом, чтобы иметь возможность получать цвет растрового изображения и отображать сообщение, но он ничего не делает. Что мне здесь не хватает? Должен ли я разместить что-то в методе TouchEvent?Невозможно добавить к изображениюНазад детектор жестов в Android

public class MainActivity extends Activity implements 
    GestureDetector.OnGestureListener, 
    GestureDetector.OnDoubleTapListener{ 

private static final String DEBUG_TAG = "Gestures"; 
private GestureDetectorCompat mDetector; 

// Called when the activity is first created. 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    img = (ImageView) findViewById(R.id.imageView);   

    mDetector = new GestureDetectorCompat(img.getContext(),this); 
    mDetector.setOnDoubleTapListener(this); 

} 

@Override 
public boolean onTouchEvent(MotionEvent event){ 
    this.mDetector.onTouchEvent(event); 
    // Be sure to call the superclass implementation 
    return super.onTouchEvent(event); 
} 

@Override 
public boolean onDown(MotionEvent event) { 
    Log.d(DEBUG_TAG,"onDown: " + event.toString()); 
    return true; 
} 

@Override 
public void onLongPress(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onLongPress: " + event.toString()); 
} 

@Override 
public boolean onSingleTapUp(MotionEvent event) { 
    int x = (int) e.getX(); 
        int y = (int) e.getY(); 
        Log.d("SingleTapUp",String.valueOf(x+" "+y)); 

        int pixel = bitmap.getPixel(x, y); 

        if (pixel == Color.parseColor("#94e3f9")) { 
         Toast.makeText(MainActivity.this, "Blue", Toast.LENGTH_SHORT).show(); 
        } 
        if (pixel == Color.parseColor("#f0c828")) { 
         Toast.makeText(MainActivity.this, "Orange", Toast.LENGTH_SHORT).show(); 
        } 
        if (pixel == Color.parseColor("#b3522c")) { 
         Toast.makeText(MainActivity.this, "Red", Toast.LENGTH_SHORT).show(); 
        } 

        return true; 
} 

@Override 
public boolean onDoubleTap(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onDoubleTap: " + event.toString()); 
    return true; 
} 

@Override 
public boolean onDoubleTapEvent(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onDoubleTapEvent: " + event.toString()); 
    return true; 
} 

@Override 
public boolean onSingleTapConfirmed(MotionEvent event) { 
    Log.d(DEBUG_TAG, "onSingleTapConfirmed: " + event.toString()); 
    return true; 
} 

}

ответ

0

Мы просто делаем это .. для любого зрения TextVIew, ImageView вместо
this.setOnTouchListener мы помещаем ImageView.setOntouchListener

img.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      gDetector.onTouchEvent(event); 
      return true; 
     } 
    });