【问题标题】:How to get Imageview pixel in android如何在android中获取Imageview像素
【发布时间】:2013-07-22 20:15:03
【问题描述】:

在我的项目中我想pick image from gallery 然后用户可以触摸该图像和pixel color store into my db.

问题:

它会给我例外:y must be <bitmap.height()

Logcat:

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);

我正在尝试更多的东西,比如设置填充,设置动态图像布局,但总是得到这个异常。

我在 Stack overflowGoogle 上进行大量搜索,但没有得到积极响应。

请给我一些想法。

【问题讨论】:

  • x/y 是屏幕坐标。您应该将屏幕坐标转换为位图本地坐标,然后调用 getPixel。
  • @Leonidos 如何将屏幕坐标转换为位图。
  • @Leonidos 我也试试这个链接。 stackoverflow.com/questions/12674941/…
  • @Leonidos 谢谢它像魅力一样工作

标签: android image-processing android-imageview


【解决方案1】:

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

【讨论】:

  • 如何将布局的背景转换为位图并使用该位图中的 X 和 Y 转换为 RGB?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
  • 2014-08-23
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多