0

アプリで画像のギャラリーを作成しようとしています。現在、これをグリッド ビューとして使用してから、ImageAdapter を介して完全な画像ビューに渡します。

問題は、グリッド ビューからクリックした後、写真間をスワイプできるようにすることです。

フラグメントを使用してこれを行うことができるかもしれないと誰かが言いましたが、私はアンドロイド開発は初めてです。

誰かがこれを行う方法についてさらに説明してください。ありがとう

私が持っているコードは次のとおりです。

    public class Marble extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.marble);

GridView gridView = (GridView) findViewById(R.id.gridview1);

        // Instance of ImageAdapter Class
        gridView.setAdapter(new ImageAdapter1(this));

        /**
         * On Click event for Single Gridview Item
         * */
        gridView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {

                // Sending image id to FullScreenActivity
                Intent i = new Intent(getApplicationContext(), FullImageActivity1.class);
                // passing array index
                i.putExtra("id", position);
                startActivity(i);
            }
        });

    }
}

それから

public class FullImageActivity1 extends Activity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.full_image);

        // get intent data
        Intent i = getIntent();

        // Selected image id
        int position = i.getExtras().getInt("id");
        ImageAdapter1 imageAdapter1 = new ImageAdapter1(this);

        ImageView imageView = (ImageView) findViewById(R.id.fullimage);
        imageView.setImageResource(imageAdapter1.mThumbIds[position]);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
    }
}

そして最後に:

public class ImageAdapter1 extends BaseAdapter {
    private Context mContext;

    // Keep all Images in array
    Integer[] mThumbIds = {
            R.drawable.arabescato, R.drawable.biancocarrara,
            R.drawable.botticinoclassico, R.drawable.calacattaoro,
            R.drawable.cremamarfil, R.drawable.cremavalencia,
            R.drawable.emperadordark, R.drawable.jurabeige,
            R.drawable.neromarquina, R.drawable.perlatoolympo,
            R.drawable.rojoalicante

    };

    // Constructor
    public ImageAdapter1(Context c){
        mContext = c;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }

    @Override
    public Object getItem(int position) {
        return mThumbIds[position];
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {         
        ImageView imageView = new ImageView(mContext);
        imageView.setImageResource(mThumbIds[position]);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setLayoutParams(new GridView.LayoutParams(265, 265));
        return imageView;
    }

}
4

1 に答える 1

1

画像ビューの代わりにビューページャーを FullImageActivity1 に入れます

this.mPagerfrimage = new pagerfrimage(getSupportFragmentManager(),
                list of drawables here);
        ViewPager vp_image = (ViewPager) findViewById(R.id.viewpager1);
        vp_image.setAdapter(mPagerfrimage);

これはページャー アダプターの呼び出しです

class pagerfrimage extends FragmentPagerAdapter {
    List<Integer> la;

    public pagerfrimage(FragmentManager fm, List<Integer> result) {
        super(fm);
        this.la = result;
        // TODO Auto-generated constructor stub
    }

    @Override
    public Fragment getItem(int arg0) {
        // TODO Auto-generated method stub
        fragmentforimage ffrFragmentforimage = new fragmentforimage();
        Bundle bundle = new Bundle();
        bundle.putInt("resourceid", la.get(arg0));
        bundle.putInt("number", arg0);
        ffrFragmentforimage.setArguments(bundle);
        return ffrFragmentforimage;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return la.size();
    }



}

フラグメントクラス

public class fragmentforimage extends Fragment {
int number;
int resourceid;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        resourceid=getArguments()!=null?getArguments().getInt("resourceid"):0;
        number=getArguments()!=null?getArguments().getInt("number"):0;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v=inflater.inflate(R.layout.yourlayot containing image view, container, false);
        ImageView iv=(ImageView)v.findViewById(R.id.your imageviews id);
        Drawable drawable=getResources().getDrawable(resourceid);
            iv.setImageDrawable(drawable);
            return v;}

現在選択されている画像IDを渡すことができるので、最初に必要に応じてコードを変更することを示すことができます

于 2013-03-28T10:58:40.173 に答える