获取RecyclerView中第一个不完全可见元素不可见的像素数量

时间:2017-08-16 10:15:09

标签: android

我有一个带有元素的RecyclerView,我需要得到一些像素,这些像素在第一个不完全可见的元素中是不可见的,我该怎么做?

2 个答案:

答案 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.