开发者

How to put images in a HorizontalScrollView?

I would like to download images from a URL using a ImageAdapter extending a BaseAdapter and i would like to append them to a HorizontalScrollView.

How could i go a about doing this with this code?

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 t开发者_StackOverflowo 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)));
            }
            }

//Here i set the ImageAdapter to a gallery, i would like to use a HorizontalScrollView instead. How do i go about doing this?

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


I would use the RealViewSwitcher control by Marc Reichelt. Have a look here, you can use it as simple as

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.

Hope that helps.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜