表面视图在ontouchevnt中获取像素值类转换错误

时间:2012-04-21 20:45:12

标签: android view surfaceview ontouchevent

我想在触摸屏幕时获得像素值。它在一个扩展了surfaceview的类中

@Override
    public boolean onTouchEvent(MotionEvent event) {

        float x = event.getX();
        float y = event.getY();

        if(event.getAction()==MotionEvent.ACTION_MOVE)
        {View v =this;
        ImageView imageView = ((ImageView)v);
        Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
        int pixel = bitmap.getPixel((int)x,(int)y);


        }

我在

中遇到了类强制转换异常错误
  

ImageView imageView =((ImageView)v);

我在这里做错了什么。请帮忙

1 个答案:

答案 0 :(得分:2)

什么是“this”,它是对ImageView的引用吗?

这段代码是哪一类的?一个Activity类?

您需要为我们提供更加安静的代码。

可能“this”是一个Activity上下文引用,您无法将其强制转换为ImageView。

试试吧

ImageView imageView = (ImageView)findViewById(R.id.XXXX)

其中XXXX是您的ImageView ID

<强>加成

        for (View objView : this.getTouchables()){
        if (objView instanceof ImageView){
            ImageView imageView = (ImageView)objView;
            //...
        }
    }

如果SurfaceView上只有一个ImageView,则可以执行此操作。如果你有多个,你可能需要额外的信息,比如它的id / tag。