1

私のアクティビティでは、スライドショーに表示する必要がある画像のリストを取得しています。

表示する必要がある画像のリストのソースはJSONから取得されるため、jsonを解析し、Appfolder/app_contentから表示する必要がある画像のリストを取得しました

授業がある:

主な活動:

  public class MainActivity extends Activity {

        ArrayList<String> imageSlideList = new ArrayList<String>();

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

             //Get Intent- Extra
        Intent intent = getIntent();
            String swpImgSImgs = intent.getStringExtra("swpImgS");

         try {
             JSONArray array = new JSONArray(swpImgSImgs);
             for (int i = 0 ; i< array.length(); i++){
                String imageList = array.getString(i);
                FileOperation fo= new FileOperation();
                File   dir=fo.createFileManagerInsidePackage(AppContext.getAppContext());
                String imagePath = dir+"/"+imageList;
                imageSlideList.add(imagePath);
             }
         } catch (JSONException e) {
             e.printStackTrace();
         }  
            ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
            ImageAdapter adapter = new ImageAdapter(this);
            viewPager.setAdapter(adapter);


        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            return false;
        }

    }

アダプタ:

    public class SwipingImageSlidesAdapter extends PagerAdapter {



        Context context;

//I need to use files that are in json 
        private int[] GalImages = new int[] {
            R.drawable.camera,
            R.drawable.camera
        };

        SwipingImageSlidesAdapter(Context context){
            this.context=context;
        }
        @Override
        public int getCount() {
            return GalImages.length;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == ((ImageView) object);
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView imageView = new ImageView(context);
            int padding = context.getResources().getDimensionPixelSize(R.dimen.activity_horizontal_margin);
            imageView.setPadding(padding, padding, padding, padding);
            imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
            imageView.setImageResource(GalImages[position]);
            ((ViewPager) container).addView(imageView, 0);
            return imageView;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            ((ViewPager) container).removeView((ImageView) object);
        }
    }

MainActivity で作成した ArrayList を使用して R.id.imageName を使用する代わりに、Application-folder(App/app_content) から画像を表示するには、どのような変更を加える必要がありますimageSlideListか?

4

3 に答える 3

1

aarraylist のような方法で画像を取得できます

imageView.setImageResource((int)aimageSlideList.get(position));

アダプタークラスで配列リストを渡します

private ArrayList<String> aimageSlideList=null;
private LayoutInflater mInflater=null;


    public SwipingImageSlidesAdapter (Activity context,ArrayList<String> aimageSlideList) {
        super(context, 0);

        mInflater = context.getLayoutInflater();
        this.aimageSlideList=aimageSlideList;
        }
于 2013-07-03T04:54:56.140 に答える
0
  1. Getter Setter Of Bitmap/Drawable を使用して新しいクラスを作成するだけです。

  2. MainActivity で画像の Bitmap/Drawable を設定します。

  3. Adapter クラスで、位置によってそのイメージを取得します。

于 2013-07-03T05:05:59.887 に答える