2012-04-20 17 views
2

onTouchEvent(MotionEventイベント)を定義して、imageviewのタッチイベントを受け取りました。私は複数のimageviewsを使用していると私はタッチイベントを受け取った画像ビューを見つける必要があります。 onTouchEvent内でイメージビューを取得できますか?アンドロイドのonTouchEvent(MotionEventイベント)内の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 { } 

私はonTouchでタッチイベントを観察しなかったImageViewの上でアニメーションを開始する()とonTouchEventでタッチイベントを取得した後

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

を使用して試してみました()。 imgArray [g_animCount] .startAnimation(movArray [g_animCount]);

+0

いくつかのコードを貼り付けることができますか? –

+0

ここでimageArrayとは何ですか? – Manikandan

答えて

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; 
     } 
    } 

}

+0

オーバーライド内でタッチイベントを受け取りません。 onTouchEvent(MotionEventイベント)を定義するpublic boolean onTouch(View、MotionEventイベント)私は私の質問で私のimageviewコードを更新しました。 – pavan

+0

これは今、厳しいイベントになる必要があります。 –

+0

ありがとう、私はこれを試してみます。 – pavan

3

onTouchListenerをオーバーライドできます。 onTouchListenerのためのコードは触れビュー

+0

@Override public boolean onTouch(View v、MotionEventイベント){}内でタッチイベントを受け取っていないので、onTouchEvent(MotionEventイベント)を定義しています。私は私の質問で私のimageviewコードを更新しました。 – pavan

+0

@pavanなぜあなたはonTouch()を受け取りませんか?私はあなたがタッチイベントを取得している必要がありますあなたがしていると思うようにあなたの活動をonTouchListenerとして設定する場合... – JRaymond

+0

タッチイベントがonTouchで受信されない理由はわかりません。私は以下のような私の活力を持っています。パブリッククラスTouch extends Activityは、OnTouchListener、AnimationListener {}を実装しています。 – pavan

0

あなたのレイアウトXMLに各Viewについてandroid:onClick="clickHandler"を設定し、あなたの方法public void clickHandler(View view)を定義することができますを知っている

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

使用ビューVでありますActivityを使用して、タッチ/クリックイベントを処理します。

これは1.6で導入されました。詳細はLINKにチェックしてください。

+0

ありがとう、私はこれを試してみます。 – pavan

+0

私はここでもう一つ問題があります、私はタッチの場所を見つけることができません。私はx、y座標を意味します。 – pavan

+0

これはonClickを処理するだけです - 絶対に必要でない限り、XMLファイルをコードファイルに結びつけるのは本当に良い設計ではありません。投稿の中には何も書かれていないので、 – JRaymond

関連する問題