2011-01-03 6 views
0

画像ギャラリーを動的にアンドロイドに表示したい(つまり、画像をパスres/drawableから取得しない)。画像ギャラリーを動的に

どうすればいいですか?

答えて

2
This is the code to initialize Gallery view .. 


     final Gallery g = (Gallery) findViewById(R.id.gallery); 
     g.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView parent, View v, int position, long id) { 
      // Toast.makeText(CurrentActivity.this, " " + position, Toast.LENGTH_SHORT).show(); 

     } 
     }); 
     g.setBackgroundColor(Color.LTGRAY); 
     g.setAdapter(new ImageAdapter(getApplicationContext())); 

これで、URLからイメージを取得できます。ギャラリーのすべてのアイテムのビューを生成する際に、URLからイメージを取得するようにイメージアダプタに指示するだけで済みます。

次の関数は、任意のURLから画像をフェッチし、画像表示

描画領域drawable_from_url(文字列のURL、文字列src_name)として設定することができる描画可能 を返すためのものである はjava.net.MalformedURLException、Javaのスロー。 io.IOException

{

return Drawable.createFromStream(((java.io.InputStream)new java.net.URL(url).getContent()), src_name); 

}  

..コードをチェックし、インナーとしてこのImageAdapterクラスを作ります

イメージのURLを含むベクトルデータを入力します。

クラスImageAdapter extends BaseAdapter { int mGalleryItemBackground; プライベートコンテキストmContext;これが役立つ

public ImageAdapter(Context c) { 
     mContext = c; 
     TypedArray a = obtainStyledAttributes(R.styleable.HelloGallery); 
     mGalleryItemBackground = a.getResourceId(
       R.styleable.HelloGallery_android_galleryItemBackground, 0); 
     a.recycle(); 
    } 

    public int getCount() { 

     return data.size(); 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView i = new ImageView(mContext); 

     i.setImageDrawable(drawable_from_url(data.get(position), "src")); 

     i.setLayoutParams(new Gallery.LayoutParams(300, 180)); 
     i.setScaleType(ImageView.ScaleType.FIT_XY); 
     i.setBackgroundResource(mGalleryItemBackground); 

     return i; 
    } 
} 

希望:)

1

ギャラリーのドキュメントは言う:このウィジェットはサポートされなくなりました

。他の水平スクロールウィジェットには、サポートライブラリのHorizo​​ntalScrollViewとViewPagerがあります。

ViewPagerをImageViewとともに使用するのが最も良い方法です。