我想在触摸屏幕时获得像素值。它在一个扩展了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);
答案 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。