2012-03-09 105 views
1

我有一個活動,我的活動包含一個ImageView.I已經實現OnTouchListener爲ImageView.Here我想找到的像素顏色在那裏我image.Please觸摸讓我知道如何找到color.I有一個想法,像素如何在圖像中查找特定座標中的像素顏色?

- >在ImageView中,我只需找到X和Y座標,並在同一個X和Y座標中查找像素,並找到像素顏色。請讓我有可能。

請給出任何建議或文件來做到這一點。

與UR參考我寫的代碼位,

int mId=R.drawable.with_colors; 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), mId); 
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); 

在onTouch

int x=(int) event.getX(); 
int y=(int) event.getY(); 
int color=bitmap.getPixel(x, y); 
Log.d("colors","---"+color); 

但在這裏登錄打印 「色彩--- 0」。

回答

4

您可以使用getDrawable()方法的ImageView的得到什麼繪製,然後通過轉換成BitmapDrawable並調用getBitmap()得到該位圖:

Drawable d = imageView.getDrawable(); 
Bitmap bitmap = ((BitmapDrawable) d).getBitmap(); 
int color = bitmap.getPixel(x, y); 

要獲得座標,分配OnTouchListener

imageview.setOnTouchListener(new OnTouchListener(){ 
    @Override 
    public boolean onTouch(View v, MotionEvent event){ 
     switch(event.getAction()){ 
     case MotionEvent.ACTION_UP: 
      int x = (int) event.getX(); 
      int y = (int) event.getY(); 

      //TODO: get pixel at x, y 

      break; 
     default: 
      return false; 
     } 
    return true; 
    } 
}); 

在你上面的代碼基本上只需插入第一個代碼它說:「在X拿到像素,Y」得到的像素顏色。

+0

如何找到我觸摸的座標?請幫助我 – 2012-03-09 10:20:57

+0

@Chiru我更新了我的答案:) – Jave 2012-03-09 10:28:13

+0

感謝Jave我添加了代碼,請檢查它... – 2012-03-09 11:02:59

相關問題