当我触摸ImageView时,它会显示图像的颜色,但是当我触摸图像外时,应用程序崩溃。
这是我的xml代码:
<ImageView
android:id="@+id/colorimage"
android:layout_width="match_parent"
android:layout_height="300dp"
android:src="@drawable/color" />
<ImageView
android:id="@+id/displaycolor"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/colorimage"/>
这是主要代码:
mImageView.setDrawingCacheEnabled(true);
mImageView.buildDrawingCache(true);
mImageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE){
Bitmap bitmap = mImageView.getDrawingCache();
int pixel = bitmap.getPixel((int)event.getX(), (int)event.getY());
int r = Color.red(pixel);
int g = Color.green(pixel);
int b = Color.blue(pixel);
display.setBackgroundColor(Color.rgb(r , g , b));
}
return true;
}
});
Logcat错误消息: Error Logs
答案 0 :(得分:0)
将if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE)
行更改为:
if(v.getId() == R.id.colorimage){
if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE)
{........}
}
触摸监听器已设置为整个活动,而不是特定的视图,除该视图之外,其他视图均无法进行位图操作,因此视图会崩溃。