Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Listview中显示图片-Android_Android_Listview_Imageview - Fatal编程技术网

在Listview中显示图片-Android

在Listview中显示图片-Android,android,listview,imageview,Android,Listview,Imageview,我的应用程序中有一个列表视图。。列表视图可以包含文本、图像或两者。如果有图像,我想在第一行显示文本,在下一行显示图像集。。我应该用哪一个浏览页面或浏览页面或其他内容?我一直在四处寻找如何做到这一点的例子 任何指点都会很有帮助 谢谢 编辑:我想在listview的第一行显示文本,在第二行显示图片列表(3-5)如果您使用的是自定义适配器(我假设您使用),那么您必须向其中输入某种数组。我不认为您可以在适配器本身中向ListVIEW添加另一行,所以我会考虑通过数组解析或使用任何填充您的ListVIEW的

我的应用程序中有一个
列表视图。。
列表视图可以包含文本、图像或两者。如果有图像,我想在第一行显示文本,在下一行显示图像集。。我应该用哪一个<代码>浏览页面
浏览页面
或其他内容?我一直在四处寻找如何做到这一点的例子

任何指点都会很有帮助

谢谢


编辑:我想在listview的第一行显示文本,在第二行显示图片列表(3-5)

如果您使用的是自定义适配器(我假设您使用),那么您必须向其中输入某种数组。我不认为您可以在适配器本身中向ListVIEW添加另一行,所以我会考虑通过数组解析或使用任何填充您的ListVIEW的数据。在此基础上,创建另一个数组,该数组具有文本和图像集的单独条目(如果存在)。然后将最后一个数组馈送到适配器中。将JSONArray与JSONObject一起使用可能会更好,因为这样可以为所有条目设置标签

然后,在getView()方法中的适配器内部,检查条目类型是文本还是图像,并更改它基于文本或图像膨胀的xml布局。或者可以使用相同的xml并使用setVisibility()控制不同的视图


如果要使图像在其列表项中水平滚动,可能必须使用水平滚动视图。我从未使用过它,但我知道它可能会给您带来一些问题,即在另一个滚动元素(ListView)中使用该滚动元素。

使用图片创建ListView有三个主要部分: 1-在主布局中创建简单的listview

2-创建自定义listview项布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="horizontal" >
<ImageView
 android:id="@+id/img"
 android:layout_width="50dp"
 android:layout_height="50dp"/>
 <TextView
 android:id="@+id/txt"
 android:layout_width="wrap_content"
 android:layout_height="50dp" />
</LinearLayout>
之后会出现一个构造函数来创建customView对象:

//class constructor
public CustomList(Activity context,String[] countries, Integer[] imageId) 
{
super(context, R.layout.list_item, countries);
this.context = context;
this.countries = countries;
this.imageId = imageId;
}
customView类有一个返回项视图的getView方法:

@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.list_item, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);
ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
txtTitle.setText(countries[position]);
imageView.setImageResource(imageId[position]);
return rowView;
}
最后,在mainActivity中为您的列表创建适配器:

 yourList.setAdapter(new CustomList(MainActivity.this, countries, imageId));

您可以查看完整的源代码并在此处下载

您应该选择可扩展列表视图。。尝试使用此工具了解如何创建自定义listview:You's spot on:)我已经在使用JSONObject的JSONArray,并使用适配器为
listview
提供数据。图片将是动态的,所以我计划用getView方法编程创建ImageView。。好吗??我尝试使用ViewPager浏览图像。。但是,当我在Listview中使用ViewPager时,出现了性能问题。。您有什么解决方案吗?在ListView中执行ViewPager可能会很麻烦,因为它们都需要适配器。我将有两个包含项目信息的xml布局,一个用于文本,一个用于图像。这样,您就不必担心以编程方式创建ImageView,也不用担心代码中的所有LayoutParameters垃圾。。这是有道理的!!如果这是你想要的,你能投票接受答案吗?很乐意提供帮助。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,只有链接的答案可能无效。thx,完成了,但这为读者节省了时间,并提供了更多详细信息和下载代码的能力。
 yourList.setAdapter(new CustomList(MainActivity.this, countries, imageId));