我只是想在android中动态显示图像库。(即)不应该从路径res / drawable获取图像..
我怎么能这样做?
答案 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)
图库文档说:
不再支持此小部件。其他水平滚动小部件包括支持库中的HorizontalScrollView和ViewPager。
最好的方法是在其片段布局中使用ViewPager和ImageView。