2016-07-25 9 views

Antwort

0

dieses Beispiel sehen ..

OntouchListener Arbeiten mit dem Touch auf Imageview zu erkennen ..

@Override 
    public boolean onTouch(View view, MotionEvent event) { 

     float eventX = event.getX(); 
     float eventY = event.getY(); 
     float[] eventXY = new float[]{eventX, eventY}; 

     int x = Integer.valueOf((int) eventXY[0]); 
     int y = Integer.valueOf((int) eventXY[1]); 

     Drawable imgDrawable = ((ImageView) view).getDrawable(); 
     Bitmap bitmap = ((BitmapDrawable) imgDrawable).getBitmap(); 

     //Limit x, y range within bitmap 
     if (x < 0) { 
      x = 0; 
     } else if (x > bitmap.getWidth() - 1) { 
      x = bitmap.getWidth() - 1; 
     } 

     if (y < 0) { 
      y = 0; 
     } else if (y > bitmap.getHeight() - 1) { 
      y = bitmap.getHeight() - 1; 
     } 

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

     int r = Color.red(touchedRGB); 
     int b = Color.blue(touchedRGB); 
     int g = Color.green(touchedRGB); 

     String rr = Integer.toString(r); 
     String bb = Integer.toString(g); 
     String gg = Integer.toString(b); 

     String xyz = (rr+bb+gg); 

     colorRGB.setText("touched color: " + "#" + xyz); 

hier xyz ist Ihr RGB-Farbcode ..

+0

Ich glaube, ich diesen Ansatz verwenden könnte (Lesen des x + y über den Bildrahmen und dann das Lesen der gleichen Position innerhalb des Pixelarrays des Bildes), jedoch suchte ich nach einem Ansatz, der reaktionsnative APIs verwendet. So wäre es auch kompatibel mit iOS-Lösungen. Ich werde es trotzdem versuchen. – jsdario

Verwandte Themen