Почему-то у программа никак не реагирует на прикасание к картинке. В чём может быть проблема?

public class MainActivity extends AppCompatActivity {
    private ImageView mImageView;
    private ViewGroup mMoveLayout;
    private int mX;
    private int mY;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mMoveLayout =  (ViewGroup) findViewById(R.id.move);
        mImageView = new ImageView(this);
        mImageView.setImageResource(R.drawable.cardsa1);
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(100, 100);
        mImageView.setLayoutParams(layoutParams);
       mImageView.setOnTouchListener(new View.OnTouchListener() {
           @Override
           public boolean onTouch(View v, MotionEvent event) {
               final int X = (int) event.getRawX();
               final int Y = (int) event.getRawY();
               switch (event.getAction() & MotionEvent.ACTION_MASK) {
                   case MotionEvent.ACTION_DOWN:
                       RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
                       mX = X - lParams.leftMargin;
                       mY = Y - lParams.topMargin;
                       break;
                   case MotionEvent.ACTION_MOVE:
                       RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) v.getLayoutParams();
                       layoutParams.leftMargin = X - mX;
                       layoutParams.topMargin = Y - mY;
                       layoutParams.rightMargin = -250;
                       layoutParams.bottomMargin = -250;
                       v.setLayoutParams(layoutParams);
                       break;
               }
               return true;
           }
       });
    }

}

Ответы (1 шт):

Автор решения: Andrew

Чтобы ваш виджет реагировал на нажатия, добавьте в xml разметке вашей активности к данному виджету такие свойства (вопрос enSO):

android:clickable="true"
android:focusable="true"

так же для обработки нажатий можно использовать не только setOnTouchListener, но и setOnClickListener:

imgview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

}
});

UPDATE

Я только заметил что вы создаете виджет программно, попробуйте установить ему такой параметр:

imgview.setClickable(true);

и так можно попробовать:

imgview.setFocusableInTouchMode(true);

и еще так:

imgview.requestFocus();
→ Ссылка