使用viewpager显示图像

时间:2016-10-11 20:39:32

标签: android android-viewpager

我正在使用viewpager来显示drawable文件夹中的图像 图片命名为: A1 a2 A3 ... 到a700 所以我使用此代码获取viewpager中的所有图像

mImages=new int[700];
    for (int i = 0; i < 700; i++) {
        mImages[i] = getResources()
            .getIdentifier("a"+i, "drawable",     getPackageName());    }

            ImagePagerAdapter   adapter =     new ImagePagerAdapter();
    viewPager.setAdapter(adapter);

它工作正常并显示所有图像 但是,当我使用此代码时,viewpager中没有第一个图像 第一个图像出现在第一个viewpager swip之后 为什么? 如何从viewpager中的a1开始

这是适配器

private class ImagePagerAdapter         extends PagerAdapter {

    @Override
    public int getCount() {
        return mImages.length;
    }
    public int getImageId(int pos){return mImages[pos];}
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((ImageView) object);
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager) container).removeView((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {


        Context context = MainActivity.this;
        final  TouchImageView imageView = new TouchImageView(context);



        int padding = context.getResources().getDimensionPixelSize(
            R.dimen.padding_medium);
        imageView.setPadding(padding, padding, padding, padding);
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        imageView.setImageResource(mImages[position]);



        ((ViewPager) container).addView(imageView, 0);

        return imageView;

}

我在mainactivity中使用这个cose

public class MainActivity extends    Activity {
 ViewPager  viewPager;
  public int[] mImages = new int[]{
R.drawable.startpic};

1 个答案:

答案 0 :(得分:0)

尝试

mImages=new int[700];
for (int i = 0; i < 700; i++) {
    mImages[i] = getResources()
        .getIdentifier("a"+ (i + 1), "drawable",     getPackageName());    }

        ImagePagerAdapter   adapter =     new ImagePagerAdapter();
viewPager.setAdapter(adapter);

您没有名为a0的图像,因此请确保您没有从a0开始。根据你目前的逻辑,我认为你最后也会丢失a700(你的for循环只会在我699时)。