在GridView中对齐和缩放图像

时间:2014-10-19 00:17:00

标签: android gridview

我有一个GridView,我将ImageViews添加到并随机放置drawables作为生成网格的资源,如下图所示。

我希望图像缩放,以便它们之间的唯一间隙是填充,我还想匹配它在列之间的间距,对于行,以便gridView将始终是一个适合的正方形到屏幕的宽度(加上边距)。图像之间的最小间隙将是我设置的填充,因此如果屏幕大或小,图像将向上或向下缩放以使网格视图适合宽度。

那我该怎么做呢?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF" >

<GridView
    android:id="@+id/grid"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_centerInParent="true" 
    android:layout_marginTop="50dp"
    android:columnWidth= "50dp"
    android:stretchMode="spacingWidthUniform"
    android:gravity="center"
    android:clickable="true">

</GridView>

 public View getView(int position, View convertView, ViewGroup parent) {

            if (convertView == null) {
            randomPosition = rng.nextInt(gridSize);
            imageView = new ImageView(mContext);
            imageView.setPadding(2, 2, 2, 2);
            } 
            else {
                imageView = (ImageView) convertView;
            }

            imgSet();
            return imageView;
    }

    public void imgSet(){
        if (diff == 1){
            imageView.setImageResource(mThumbIds[randomPosition]);
        }
        if (diff == 2){
            imageView.setImageResource(mThumbIds2[randomPosition]);
        }
        if (diff == 3){
            imageView.setImageResource(mThumbIds3[randomPosition]);
        }
    }

My GridView filled with imageViews displaying circle drawables

1 个答案:

答案 0 :(得分:0)

如果Image Scaling是您的问题,您可以尝试缩放图像以适合imageView并将它们放在网格上。

尝试android:scaleType =&#34; fitXY&#34;

根据您的需要尝试scaleType中的其他选项