2012-04-21 13 views
0

私は画面に触れるとピクセル値を取得したいと思います。その私が表面ビューは、ontouchevntのピクセル値クラスキャストエラーを取得します

ImageViewのImageViewの=((ImageViewの)V)でクラスキャスト例外エラーを取得しています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); 


     } 

を拡張するクラスで、

私はここで間違っています。 PLZ

答えて

1

「これは」とは何かを助ける、それはImageViewのを参照するのですか?

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

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

はおそらく「これは」Activityコンテキストの参照であり、あなたはImageViewのにキャストすることはできません。

はXXXXがあなたのImageViewのIDを

追加

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

あるごsurfaceViewはそれだけで1つのImageViewのを持っている場合は、この操作を行うことができます

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

それを試してみてください。複数ある場合は、id/tagのような追加情報が必要になるでしょう。

+0

サーフェイスビューの拡張クラスです。 私はキャンバスに描いています –

+1

ああ、申し訳ありませんが、私はそれに注意を払っていませんでした。 "this"はおそらくImageViewリファレンスではなく、surfaceViewリファレンスです。私が言ったことをやってみてください、SurfaceViewは "findViewById"も持っています。しかし、あなたのimageViewが動的に作成されたかどうか教えてください。 – digulino

+0

その動的に作成された、私はxxxを使用しない –

関連する問題