2011-07-28 33 views
1

我想使用擴展BaseAdapter的ImageAdapter從URL下載圖像,我想將它們附加到Horizo​​ntalScrollView。如何將圖像置於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)); 
+0

omg所有這些聰明的人在stackoverflow ..沒有人可以回答這個問題? –

回答

0

我會使用由Marc艾香德的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. 

希望有所幫助。

相關問題