0

このチュートリアルに従ってギャラリーを構築しています。今まで、以下のようなスワイプ機能で画像を表示できました

public Object instantiateItem(View collection, int position) {
        LayoutInflater inflater = (LayoutInflater) collection.getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        int Id = 0;
        switch (position) {
        case 0:
            Id = R.layout.farleft;
            break;
        case 1:
            Id = R.layout.left;
            break;
        }
        View view = inflater.inflate(resId, null);
        ((ViewPager) collection).addView(view, 0);
        return view;
    }

しかし、私はたくさんの写真を表示したいので、何百もの異なるレイアウトを設定するために何百ものケースを作成することはできません。

4

2 に答える 2

0
int resId = context.getResources().getIdentifier("image_" +
                Integer.toString(position), "id", context.getpackageName();

私はそれを心からタイプしたので、いくつかのタイプミスがあるかもしれませんが、私はあなたがその概念を理解したと確信しています.

于 2013-01-11T12:33:51.727 に答える
0

このようにしてみてください..

@Override
public Object instantiateItem( final View pager, final int position )
{
    //Note: if you do not have a local reference to the context make one and
    //set it to the context that gets passed in to the constructor.
    //Another option might be to use pager.getContext() which is how its
    //done in the tutorial that you linked.
    ImageView mImg = new ImageView(context);

    /*Code to dynamically set your image goes here.
    Exactly what it will be is going to depend on 
    how your images are stored. 
    In this example it would be if the images
    are on the SD card and have filenames
    with incrementing numbers like: (img0.png, img1.png, img2.png etc...)*/

    Bitmap mBitmap = BitmapFactory.decodeFile(
         Environment.getExternalStorageDirectory() + "/img" + position + ".png");
    mImg.setImageBitmap(mBitmap);




    ((ViewPager) collection).addView(mImg, 0);
    return mImg;

}

リンクも試してみてください https://github.com/ysamlan/horizo​​ntalpager

于 2013-01-11T12:34:14.413 に答える