0

私はプロジェクトでフルスクリーンギャラリーを使用しており、ギャラリーではギャラリーのサポートベースアダプターを使用しています。ボタンクリックでポップアップが表示されるまで、ギャラリーを無効にするか、ギャラリーのスクロールを停止する必要があります。 ?

->以下は、ギャラリーのベースアダプターを使用し、ギャラリーを拡張しないスニペットです。

public class SubItemSelectedImageAdapter extends BaseAdapter {

    int mGalleryItemBackground;
    private Context mContext;
    private String[] mImageIds;
    ImageView[] mImages;

    public SubItemSelectedImageAdapter(Context c, String[] mImageIds2) {

        mImageIds = mImageIds2;
        mImages = new ImageView[mImageIds.length];
        mContext = c;
        TypedArray attr = mContext
                .obtainStyledAttributes(R.styleable.HelloGallery);
        attr.recycle();
    }

    public int getCount() {
        return mImageIds.length;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {


        return position;
    }


    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        ImageView imageView = new ImageView(mContext);

        imageView.setImageURI(Uri.fromFile(new File(mImageIds[position])));
        imageView.setLayoutParams(new Gallery.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);

        return imageView;
    }
}

public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

}

public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub

}

public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub

}

}

そして、Galleryオブジェクトを拡張し、xmlから参照します...

    // full screen gallery implementation.
    ImageAdapter = new SubItemSelectedImageAdapter(this, data);
    Gallery gallery = (Gallery) findViewById(R.id.gallery);

    gallery.setAdapter(ImageAdapter);
4

2 に答える 2

1
use setOnTouchListener() of gallery as below and use flag for the enable disable process 
- on popup being display make flag false and when there is no popup being displayed make flag false. 
- code is as below: 
gallery.setOnTouchListener(new OnTouchListener() 
{ public boolean onTouch(View v, MotionEvent event)
 { // TODO Auto-generated method stub
 if(flag==true){ return false;
 }else{
 return true; 
}
 }
 });
于 2012-04-17T05:36:04.583 に答える
0

ボタンクリックイベントでは、以下のコードでギャラリーを無効にできます。

gallery.setEnabled(false);

これにより、クリックできなくなり、スクロールできなくなります。ポップアップを終了すると、makeが有効になります。

 gallery.setEnabled(true);
于 2012-04-16T10:51:31.120 に答える