【发布时间】:2014-10-07 11:28:34
【问题描述】:
我尝试实现水平 ListView。在这个活动中,我有一个 ImageView 和一个 Horizontal ListView。如果我从这个水平 ListView 中选择任何图像,该图像将显示在水平 ListView 上方。默认情况下,第一个图像显示在该 ImageView 上。此处图像未在 ImageView 上显示:
String Imagefile ="http://www.example.com/wp-content/uploads/2014/10/Screenshot_2014-10-07-11-52-52-1412678971.png";
selectedImage = (ImageView) findViewById(R.id.imageView1);
imageLoader=new ImageLoader(DetailPage.this.getApplicationContext());
imageLoader.DisplayImage(Imagefile, selectedImage);
现在图像在 ImageView 上显示良好。但是如果我尝试设置动态图像,图像不会显示在 ImageView 上。
GalleryImageAdapter adapter = new GalleryImageAdapter(DetailPage.this, categories);
gallery.setAdapter(adapter);
String Imagefile =categories[0].toString();
selectedImage = (ImageView) findViewById(R.id.imageView1);
//imageLoader=new ImageLoader(DetailPage.this.getApplicationContext());
//imageLoader.DisplayImage(Imagefile, selectedImage);
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
System.out.println("Selected-Image"+" "+categories[position].toString());
//imageLoader=new ImageLoader(DetailImage.this.getApplicationContext());
// imageLoader.DisplayImage(categories[position].toString(), selectedImage);
}
});
}
class GalleryImageAdapter extends ArrayAdapter<String>
{
private final Context context;
private final String[] categories;
public ImageLoader imageLoader;
public GalleryImageAdapter(Context context, String[] categories) {
super(context, R.layout.rowlayout, categories);
this.context = context;
this.categories = categories;
imageLoader=new ImageLoader(context.getApplicationContext());
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View i = inflater.inflate(R.layout.rowlayout, parent, false);
ImageView imageView = (ImageView) i.findViewById(R.id.icon);
// imageLoader=new ImageLoader(context.getApplicationContext());
imageLoader.DisplayImage(categories[position], imageView);
System.out.println("Image"+" "+categories[position]);
return i;
}
}
但我在 logcat 上获得了 url:
10-07 16:46:35.559: I/System.out(1105): default-Image "http://www.example.com/wp-content/uploads/2014/10/Screenshot_2014-10-07-11-52-52-1412678971.png"
10-07 17:22:50.009: I/System.out(3607): Image http://example.com/wp-content/uploads/2014/10/Screenshot_2014-10-07-11-52-52-1412678971.png
我的代码有什么问题?
编辑:
是的,我已经改变了我的代码:
GalleryImageAdapter adapter = new GalleryImageAdapter(DetailImage.this, R.layout.rowlayout,categories);
class GalleryImageAdapter extends ArrayAdapter<String>
{
private final Context context;
private final String[] categories;
public ImageLoader imageLoader;
private int resourceId;
public GalleryImageAdapter(Context context, int resourceId,String[] categories) {
super(context, R.layout.rowlayout, categories);
this.context = context;
this.resourceId = resourceId;
this.categories = categories;
imageLoader=new ImageLoader(context.getApplicationContext());
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View i = inflater.inflate(resourceId, parent, false);
但现在仍然没有在 ImageView 上显示图像。请验证。
编辑:
我需要像下面的教程这样的动态数据的精确输出:
http://www.learn-android-easily.com/2013/07/android-gallery-view-example.html
【问题讨论】:
-
@NaveenTamrakar 该链接仅是示例之一..我使用了有效的网址...我们在公共上限制我们的网址。这就是我发布示例网址的原因。
-
@KrishnaVeni:你应该在
GalleryImageAdapter中加载图片 -
水平列表视图是什么意思? @KrishnaVeni
标签: android android-imageview baseadapter android-gallery