В одном из моих действий у меня есть ImageView, который я установил на него на TouchListener, чтобы переместить его на экран, проблема в том, что когда я тестирую его в режиме отладки, все работает нормально, и я вижу, что ImageView двигаясь по экрану, и я также могу нажать на это. Но когда я создаю подписанный APK для режима выпуска и тестирую его на том же устройстве, он не отвечает!
представление изображения находится внутри RelativeLayout и настроено как:
<ImageView
android:id="@+id/imageView"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_centerInParent="true"
android:src="@drawable/app_launcher"
android:clickable="true"
/>
и код для этого: (этот код находится в методе onCreate)
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event))
{
Toast.makeTest(MainActivity.this,
"imageView clicked!",Toast.LENGTH_LONG).show();
return true;
} else {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
initPosX= v.getX();
initPosY= v.getY();
initTouchX= event.getRawX();
initTouchY= event.getRawY();
lastAction= event.getAction();
return true;
case MotionEvent.ACTION_MOVE:
v.setX(initPosX+ (int)(event.getRawX() - initTouchX));
v.setY(initPosY+ (int)(event.getRawY() - initTouchY));
lastAction= event.getAction();
return true;
case MotionEvent.ACTION_UP:
v.setVisibility(View.VISIBLE);
lastAction= event.getAction();
return true;
}
}
return true;
}
});
У меня также есть GestureDetectorListener для обнаружения singleTap:
private class GestureListener extends GestureDetector.SimpleOnGestureListener{
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
return true;
}
}