我需要在scrollview中显示像gridview这样的图像。 正如我所读到的那样,在scrollview中使用gridview是不对的。但我需要大图像然后文本,然后列出所有图像并将它们全部放在一个片段中,所以我需要scrollview,就像第一个一样,但是只是没有任何文字的图像 那么有没有办法在RelativeLayout中一个接一个地以编程方式显示图像(比如在gridview中)?
这是我得到的,但它不起作用,图像只是相互叠加。
for (String pic : mFlat.getAdv_pics()){
i++;
ImageView imageView = new ImageView(mActivity);
imageView.setId(i);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.RIGHT_OF, i-1);
imageView.setLayoutParams(params);
Log.d("!!!!", "" + i + "|" + imageView.getId());
Log.d("!!!!", "http://****" + pic + "_small.jpg");
relativeLayout.addView(imageView);
Picasso.with(mActivity)
.load("http://****" + pic + "_small.jpg")
.resize(width,width)
.centerCrop()
.into(imageView);
}
}
感谢
答案 0 :(得分:1)
gridview存在一个原因,创建这样的布局要复杂得多,并且使用其他视图组合也更难处理(事件,位置......)。您基本上需要在realtivelayout中显示listview,listview的项目将是您自定义网格的行。 例如,您希望在每一行上显示3个图像:
您的主xml将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"/>
</RelativeLayout>
然后你的listview适配器项将是这样的:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView1"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView2"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView3"/>
</RelativeLayout>
现在你需要将一个嵌套数组传递给你的适配器,每个数组都包含3个图像,依此类推。但主要的问题是处理事件,你需要重新考虑它。