如何在android中获取Imageview像素

如何在android中获取Imageview像素,android,image-processing,android-imageview,Android,Image Processing,Android Imageview,在我的项目中,我想从图库中选择图像,然后用户可以触摸该图像,并将像素颜色存储到我的数据库中。 问题: 07-22 16:38:59.406: E/AndroidRuntime(6139): java.lang.IllegalArgumentException: y must be < bitmap.height() 07-22 16:38:59.406: E/AndroidRuntime(6139): at android.graphics.Bitmap.checkPixelAcc

在我的项目中,我想
从图库中选择图像
,然后用户可以触摸该图像,并将
像素颜色存储到我的数据库中。

问题:

07-22 16:38:59.406: E/AndroidRuntime(6139): java.lang.IllegalArgumentException: y must be < bitmap.height()
07-22 16:38:59.406: E/AndroidRuntime(6139):     at android.graphics.Bitmap.checkPixelAccess(Bitmap.java:788)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at android.graphics.Bitmap.getPixel(Bitmap.java:740)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at com.example.mycolorreader.PhotoActivity$2.onTouch(PhotoActivity.java:121)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at android.view.View.dispatchTouchEvent(View.java:3762)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:863)
07-22 16:38:59.406: E/AndroidRuntime(6139):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1671)
final Bitmap bitmap = ((BitmapDrawable) ivPhoto.getDrawable()).getBitmap();
ivPhoto.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
        int x = (int) event.getX();
        int y = (int) event.getY();
        int pixel = bitmap.getPixel(x, y);

它会给我一个例外:
y必须是事件的x/y是触摸坐标。为了得到位图的像素,我们应该首先将它们转换为位图坐标。这个过程描述得很好。

事件的x/y是触摸坐标。为了得到位图的像素,我们应该首先将它们转换为位图坐标。这个过程描述得很好。

x/y是屏幕坐标。您应该将屏幕坐标转换为位图局部坐标,然后调用getPixel。@Leonidos如何将屏幕坐标转换为位图。@Leonidos我也在尝试此链接@Leonidos感谢它像charmx/y是屏幕坐标一样工作。您应该将屏幕坐标转换为位图局部坐标,然后调用getPixel。@Leonidos如何将屏幕坐标转换为位图。@Leonidos我也在尝试此链接@Leonidos感谢它像Charm一样工作我如何将版面背景转换为位图并使用位图中的X和Y转换为RGB?如何将版面背景转换为位图并使用位图中的X和Y转换为RGB?