0

我想在触摸屏幕时获取像素值。它在一个扩展表面视图的类中

@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);

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

4

1 回答 1

2

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

这段代码是哪个类?活动课?

您需要提供更多的代码来帮助我们。

可能“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。

于 2012-04-21T20:55:15.563 回答