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

「これ」とは何ですか、それは ImageView への参照ですか?

このコードはどのクラスですか? アクティビティ クラス ?

私たちがあなたを助けるために、コードの平和を提供する必要があります。

おそらく「これ」はアクティビティ コンテキスト参照であり、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 が 1 つしかない場合に実行できます。複数ある場合は、ID/タグなどの追加情報が必要になる可能性があります。

于 2012-04-21T20:55:15.563 に答える