边距以外的Android GridView

时间:2016-04-23 16:16:23

标签: android image gridview

我在网格视图中包含了一些图像,在滚动结束时,似乎没有任何理由出现在边距之外。 (见图)任何人都可以告诉我为什么?我发布了XML文件和图像适配器。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<GridView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/gridView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:numColumns="4"
    android:layout_marginBottom="20dp"/>

public class ImageAdapter extends BaseAdapter {
    private Context context;

    public ImageAdapter(Context c) {
        context = c;
    }

    //---returns the number of images---
    public int getCount() {
        return imageName.length;
    }

    //---returns the ID of an item---
    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    //---returns an ImageView view---
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(context);
            imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(5, 5, 5, 5);
        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageResource(imageName[position]);
        return imageView;
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

This应该有帮助。

基本上,更改此行以避免硬编码像素大小。

imageView.setLayoutParams(new GridView.LayoutParams(185, 185));

最高回答here将向您展示如何获取当前屏幕尺寸(高度/宽度)。使用这些值而不是185。