Я новичок в Android, поэтому все, что я пытаюсь сделать, - это запрограммировать приложение с несколькими представлениями, взаимодействующими с пользователем. Мой подход состоит в том, чтобы определить макет с некоторыми изображениями в XML-файле и затем программно обрабатывать события в этих изображениях.
Однако у меня возникла проблема с назначением .setOnTouchListener () для RelativeLayout, ранее определенного в xml.
код выглядит так:
public class ThreeActivity extends Activity implements OnTouchListener {
ImageView iv2;
RelativeLayout rl;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.fish);
ImageView iv1 = (ImageView) findViewById(R.id.ImageView02);
iv1.setAlpha(50);
iv2 = (ImageView) findViewById(R.id.ImageView01);
iv2.setId(2);
iv2.setOnTouchListener(this);
iv2.setFocusable(true);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (iv2.isFocused()) {
TranslateAnimation translateAnim = new TranslateAnimation(
iv2.getLeft(), event.getX(), iv2.getTop(), event.getY());
translateAnim.setDuration(1000);
translateAnim
.setInterpolator(new AccelerateDecelerateInterpolator());
translateAnim.setFillAfter(true);
iv2.setAnimation(translateAnim);
iv2.startAnimation(translateAnim);
}
return true;
}
}
очевидно, я хочу, чтобы просмотр изображения был фокусируемым, чтобы получать несколько событий, а затем перемещать его в положение касания. И вот тут у меня проблемы. В RelativeLayout, к которому я прикасаюсь, не настроен сенсорный приемник, поэтому я не могу с ним взаимодействовать.
Можете ли вы помочь мне с этим или порекомендовать другой путь?
Спасибо за вашу помощь!