如何将图像放入Horizo​​ntalScrollView?

时间:2011-07-28 02:42:19

标签: android horizontalscrollview

我想使用扩展BaseAdapter的ImageAdapter从URL下载图像,我想将它们附加到Horizo​​ntalScrollView。

我怎么能用这段代码来做这件事?

public class ImageAdapter extends BaseAdapter {
            /** The parent context */
            private Context myContext;public ImageAdapter() {
                // TODO Auto-generated constructor stub
            }
            /** URL-Strings to some remote images. */

            public String[] myRemoteImages = {imageUrl,imageUrl2,imageUrl3,imageUrl4};






            /** Simple Constructor saving the 'parent' context. */
            public ImageAdapter(Context c) { this.myContext = c; }





            /** Returns the amount of images we have defined. */
            public int getCount() { 
                return 10000;
            }

            /* Use the array-Positions as unique IDs */
            public Object getItem(int position) { 
                return position; }
            public long getItemId(int position) { 
                return position; 
                }

            /** Returns a new ImageView to
            * be displayed, depending on
            * the position passed. */
            public View getView(int position, View convertView, ViewGroup parent) {
            ImageView i = new ImageView(this.myContext);



            try {

                            URL aURL = new URL(myRemoteImages[position]);
                            URLConnection conn = aURL.openConnection();
                            conn.setUseCaches(true);
                            conn.connect();
                            InputStream is = conn.getInputStream();
                            /* Buffered is always good for a performance plus. */
                            BufferedInputStream bis = new BufferedInputStream(is);
                            /* Decode url-data to a bitmap. */
                            Bitmap bm = BitmapFactory.decodeStream(bis);
                            bis.close();
                            is.close();
                            Log.v(imageUrl, "Retrieving image");

                            /* Apply the Bitmap to the ImageView that will be returned. */
                            i.setImageBitmap(bm);

                    } catch (IOException e) {



                            Log.e("DEBUGTAG", "Remtoe Image Exception", e);





            /* Image should be scaled as width/height are set. */
            i.setScaleType(ImageView.ScaleType.FIT_CENTER);
            /* Set the Width/Height of the ImageView. */
            if(Build.VERSION.SDK_INT >= 11){
                i.setLayoutParams(new Gallery.LayoutParams(450, 300));
            return i;
            }
            else{
                i.setLayoutParams(new Gallery.LayoutParams(125, 125));
                return i;
            }
                    }
            return i;
            }




            /** Returns the size (0.0f to 1.0f) of the views
            * depending on the 'offset' to the center. */
            public float getScale(boolean focused, int offset) {
            /* Formula: 1 / (2 ^ offset) */
            return Math.max(0, 1.0f / (float)Math.pow(2, Math.abs(offset)));
            }
            }

//这里我将ImageAdapter设置为一个库,我想使用Horizo​​ntalScrollView。我该怎么做呢?

      ((Gallery) findViewById(R.id.gallery))
                      .setAdapter(new ImageAdapter(MainMenu.this));

1 个答案:

答案 0 :(得分:0)

我会使用Marc Reichelt的RealViewSwitcher控件。看看here,您可以像使用它一样简单

RealViewSwitcher rvs = new RealViewSwitcher();
rvs.addView(/*your image goes here*/); // add as many images as you want like this

setContentView(rvs); //run this on your Activity or add in a layout or use however you want.

希望有所帮助。