我正在尝试获取一个GridView中ImageView的颜色,该ImageView之前已应用颜色过滤器。我使用的是安装有4.2.2版本的Nexus 4。
我按以下方式更改ImageView的颜色。在应用过滤器之前,图像的实际颜色为白色。
现在这并不会改变源图像的颜色,这正是我想要的。那个总是保持白色。
我的问题是,我试图在失去设置它的数据后引用颜色。我想长按ImageView并获取其颜色。
我在下面的问题中找到了一些代码,但它似乎不起作用,因为它总是返回白色(255,255,255),这是原始图像的颜色,而不是滤镜。 如何在Android中获取像素颜色?
我已经尝试了以下方法,但在调用getColorFilter时会崩溃。
我按以下方式更改ImageView的颜色。在应用过滤器之前,图像的实际颜色为白色。
Drawable myIcon = getResources().getDrawable(R.drawable.bufferbuildercolor3);
myIcon.setColorFilter(new PorterDuffColorFilter(Color.rgb(Color.red(color),Color.green(color), Color.blue(color)),PorterDuff.Mode.MULTIPLY));
现在这并不会改变源图像的颜色,这正是我想要的。那个总是保持白色。
我的问题是,我试图在失去设置它的数据后引用颜色。我想长按ImageView并获取其颜色。
我在下面的问题中找到了一些代码,但它似乎不起作用,因为它总是返回白色(255,255,255),这是原始图像的颜色,而不是滤镜。 如何在Android中获取像素颜色?
ImageView imageView = ((ImageView)v);
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
int pixel = bitmap.getPixel(x,y);
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
我已经尝试了以下方法,但在调用getColorFilter时会崩溃。
ImageView image = (ImageView)findViewById(R.drawable.bufferbuildercolor3);
ColorFilter test = image.getColorFilter();
我不确定还有什么其他办法,除非找到实际网格位置的X/Y坐标,然后获取该点屏幕背景颜色而不是图片。不过似乎应该有更简单的方法吧?