我截了它的截图。它显示了一些奇怪的方式:
这是代码。
GridAdapter:
public class GridViewAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<Uri> mUrls;
// references to our images
public GridViewAdapter(Context c, ArrayList<Uri> images) {
mContext = c;
this.mUrls = images;
}
public int getCount() {
return mUrls.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
ImageView inflatedImageView = (ImageView) mInflater.inflate(R.layout.imageview_amb_background, null);
//ImageView imageView = new ImageView(mContext);
inflatedImageView.setImageURI(mUrls.get(position));
inflatedImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
return inflatedImageView;
}
inflatedImageView
是布局膨胀,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@drawable/bgimages"
android:maxWidth="120dp"
android:padding="5dp">
</ImageView>
另一方面,我在xml文件中有一个gridView:
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="250dp"
android:horizontalSpacing="5dp"
android:numColumns="3"
android:verticalSpacing="5dp" >
</GridView>
所以,我给这个gridView充气,我在一个循环中添加几个URI(确切地说是3个)。添加后,我将适配器设置为gridview:
ArrayList<Uri> uriFotos = new ArrayList<Uri>();
HashMap<Integer, ListItem> items = xmlList.getItems();
for (int i = 0; i<items.size();i++){
ListItem itemActual = items.get(i);
itemActual.getLogoSrc();
uriFotos.add(Uri.parse(Environment.getExternalStorageDirectory().toString()+rutaFinsCarpetaClient+itemActual.getLogoSrc()));
}
gridViewInflated.setAdapter(new GridViewAdapter(this,uriFotos));
variableContent.addView(gridViewInflated);
图像正确“链接”。
variableContent
是ScrollView中的LinearLayout,因此网格应该是可滚动的。
但是你可以看到很少发生的事情:
inflatedImageView
说的那样吗?希望你们能帮助我。我已经改变了许多布局,改变了宽度,高度,并且发生了同样的事情。
请注意,您在gridView中看到的图像类似于1200x800px。
修改 具有较小图像的相同代码:
答案 0 :(得分:2)
我会尝试将图像视图大小设置为wrap_content:
android:layout_height="wrap_content"
如果您确实需要120dp高度,请在设置图像src后尝试重置此尺寸:
inflatedImageView.setImageURI(mUrls.get(position));
inflatedImageView.setLayoutParams(new GridView.LayoutParams(120, 120));
还在添加图片之前设置scaleType(最好是在xml中):
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="120dp"
android:layout_height="120dp"
android:scaleType="centerInside"
android:background="@drawable/bgimages"
android:maxWidth="120dp"
android:padding="5dp">
</ImageView>