动态图库

时间:2011-01-03 09:45:30

标签: android

我只是想在android中动态显示图像库。(即)不应该从路径res / drawable获取图像..

我怎么能这样做?

2 个答案:

答案 0 :(得分: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 可以设置为图像视图

Drawable drawable_from_url(String url,String src_name)   抛出java.net.MalformedURLException,java.io.IOException

{

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

}    

将此ImageAdapter类设为内部,检查代码..

使用图片网址

填充矢量数据

类ImageAdapter扩展BaseAdapter {         int mGalleryItemBackground;         private Context 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 :(得分:1)

图库文档说:

不再支持此小部件。其他水平滚动小部件包括支持库中的Horizo​​ntalScrollView和ViewPager。

最好的方法是在其片段布局中使用ViewPager和ImageView。