我有一个带有元素的RecyclerView,我需要得到一些像素,这些像素在第一个不完全可见的元素中是不可见的,我该怎么做?
答案 0 :(得分:0)
您可以从视图中获取像素:
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);
Color函数返回每个通道中的值。所以你要做的就是检查Red是255还是绿色和蓝色是0,而不是将textView文本设置为“它是红色”。请注意,说某些东西是红色不仅仅是红色通道大于零。当然,Cos 255-Green和255-Red是黄色的。 您还可以将像素与不同颜色进行比较。 例如:
if(pixel == Color.MAGENTA){
textView.setText("It is Magenta");
}
希望它有所帮助。
答案 1 :(得分:0)
好的,基本上在这种情况下,方法getLocalVisibleRect
可以做到我想要的那样:
Rect r = new Rect();
getChildAt(0).getLocalVisibleRect(r);
if (getChildAt(0).getWidth() >= r.right - r.left) { //Check if element is not fully visible, calculation of the invisible part.