2014-12-03 79 views
0

有没有办法让像素的颜色为(x,y),并检查它的红色是否为红色,然后发送触摸事件。在onTouch上获取颜色(像素)信息

我希望它在后台运行,它应该始终检查该像素(x,y)的颜色,一旦它变成红色,应该模拟一个触摸事件。

回答

1

您可以从以下示例中获取值。

final Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); 
imageView.setOnTouchListener(new OnTouchListener(){ 
     @Override 
     public boolean onTouch(View v, MotionEvent event){ 
      int x = (int)event.getX(); 
      int y = (int)event.getY(); 
      int pixel = bitmap.getPixel(x,y); 


      int red = Color.red(pixel); 
      int blue = Color.blue(pixel); 
      int green = Color.green(pixel);   
      return false; 
     } 
    }); 
+2

请注意ImageView的宽度和高度必须是wrap_content。 – hasan83 2014-12-03 13:00:48

+0

@Murtaza我想你让我错了。 我不想在onTouch上获得像素的颜色,我想要的是对特定像素进行检查,并在其颜色改变时触摸事件应该被模拟。 – 2014-12-13 17:38:57

+0

这里有简单的逻辑。您可以使用r,g和b颜色代码记录x和y位置,并与时间间隔值进行比较,间隔可以通过许多方式实现,如AlarmManager和TimerTask – 2014-12-15 07:29:21