12

アプリでギャラリーを使用しました。

その中で私はこのような各ギャラリーアイテムに2つの画像を持っています

ここに画像の説明を入力してください

ウサギとマウスの各画像は、1つのギャラリーアイテムとして結合されます。

したがって、両方の画像にonclickListenerを指定しますが、そのように指定すると、それらの画像をタッチしてもスクロールできません...その個々の画像のonClickListenerを削除すると、スクロールできます。

各画像のスクロールとonClickの両方をアーカイブする方法。

4

6 に答える 6

4

これはあなたの質問に答えます。onClickとGesturesの両方をアクティビティで処理できるようにする必要があります。

于 2011-03-03T08:49:38.803 に答える
3

私の場合、親アクティビティへのコールバックを処理するリスナーでGallery.setOnItemClickListenerを使用しました。

上記の解決策のようにアクティビティをリッスンさせたとき、クリックは登録されませんでした。

于 2011-05-19T11:44:31.183 に答える
3

私もこの問題に直面しました。そして2日間働いた後、私はこれに対する完璧な解決策を見つけました:

  1. onItemClickListenerギャラリーにも設定。
  2. 活動については、ギャラリーや活動を聞いてonTouchEvent、生の座標を書き留めてください

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        x = (int)event.getRawX();
        y = (int)event.getRawY();
        return false;
    }
    
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        x = (int)event.getRawX();
        y = (int)event.getRawY();
        return super.onTouchEvent(event);
    }
    
  3. onItemClickギャラリーの場合は、ギャラリー内の各ビューを取得し、クリック座標を確認します。

    Rect frame = new Rect();
    image[i].getGlobalVisibleRect(frame);
    if (frame.contains(x, y)) {//do whatever you want}
    
于 2011-12-08T16:19:09.203 に答える
2

私はこれと同じ問題を抱えていましたが、それはかなり簡単に解決しました。私が行ったことは、setOnItemClickListenerをGalleryViewに追加してから、必要なビュー(私の場合はTextView)を取得することでした。

 private boolean isVisble = true;
 gallery_images.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub
                    TextView image_text =  ((TextView)arg1.findViewById(R.id.image_text));
                    if(!isVisble){

                        isVisble = true;

                        image_text.setVisibility(TextView.VISIBLE);
                    }
                    else{
                        isVisble = false;
                        image_text.setVisibility(TextView.GONE);
                    }

                }
            });

あなたの場合、最初にどの画像が表示されているかを確認し、その情報に基づいてビューを操作できます。お役に立てれば

于 2012-07-30T14:00:27.687 に答える
0

私の活動には複数のギャラリーがあり、そのようにしています。

の実装OnItemClickListener

public class ImageBoardActivity extends Activity implements OnItemClickListener {

オーバーライドonItemClick()メソッド

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long arg3) {
    // do what you want here...
}
于 2011-03-07T15:01:32.997 に答える
0

私の解決策:

これをしないでください!

:=))(これを解決するために6時間以上費やしました..私にはうまくいきませんでした...)別のアプローチを使用しました(異なるレイアウト)

于 2012-03-25T01:41:19.617 に答える