2

imageview のタッチイベントを受け取る onTouchEvent(MotionEvent event) を定義しました。複数のイメージビューを使用していますが、タッチイベントを受け取ったイメージビューを見つける必要があります。onTouchEvent内でimageviewを取得することは可能ですか?

public void createImageViews()
{
  int i = 0;

  imageArray[0] = (ImageView)findViewById(R.id.image1);
  imageArray[1] = (ImageView)findViewById(R.id.image2);
  imageArray[2] = (ImageView)findViewById(R.id.image3);
  imageArray[3] = (ImageView)findViewById(R.id.image4);
  imageArray[4] = (ImageView)findViewById(R.id.image5);
  imageArray[5] = (ImageView)findViewById(R.id.image6);

  for (i = 0; i < count; i++)
  {
    imageArray[i].setOnTouchListener(this);
  } 
}
 public class Touch extends Activity implements OnTouchListener, AnimationListener { }

使ってみました

 public boolean onTouch(View v, MotionEvent event) { } but not receiving the touch events.

imageview でアニメーションを開始した後、 onTouch() でタッチ イベントを観察せず、 onTouchEvent() でタッチ イベントを取得しませんでした。imgArray[g_animCount].startAnimation(movArray[g_animCount]);

4

3 に答える 3

3

onTouchListener をオーバーライドできます。onTouchListener のコードは

@Override
public boolean onTouch(View v, MotionEvent event) {
/// your stuff
}

View v を使用して、タッチされたビューを知る

于 2012-04-20T17:48:32.363 に答える
2
use the below sample code snippet::::

    public class MyImageView extends Activity implements OnTouchListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lay_name);        
        int i = 0;
        imageArray[0] = (ImageView)findViewById(R.id.image1);
        imageArray[1] = (ImageView)findViewById(R.id.image2);
        imageArray[2] = (ImageView)findViewById(R.id.image3);
        imageArray[3] = (ImageView)findViewById(R.id.image4);
        imageArray[4] = (ImageView)findViewById(R.id.image5);
        imageArray[5] = (ImageView)findViewById(R.id.image6);

        for (i = 0; i < count; i++)  {
            imageArray[i].setOnTouchListener(this);
         } 


    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.image1:
        //your stuff
        break;
        case R.id.image2:
        //your stuff        
        break;
        case R.id.image3:
        //your stuff
        break;
        case R.id.image4:
         //your stuff
        break;
        case R.id.image5:
         //your stuff
        break;
        case R.id.image6:
         //your stuff
        break;
        }
    }

}

于 2012-04-20T17:56:31.403 に答える
0

レイアウト xmlandroid:onClick="clickHandler"でそれぞれを設定し、タッチ/クリック イベントを処理するメソッドを定義できます。Viewpublic void clickHandler(View view)Activity

これは 1.6 で導入されました。詳細については、このLINKを確認してください。

于 2012-04-20T18:21:01.873 に答える