2

我有一个数组可以成功地将 15 个图像放入 GridView。但是,在网格中显示时,图像都非常小。我该如何改变它们的大小?我试图将 GridView.LayoutParams 更改为 (100, 100) 但似乎没有变化。

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(mContext);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
    return imageView;
4

2 回答 2

1

您可以尝试根据设备或模拟器的像素密度进行调整

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch(metrics.densityDpi){
     case DisplayMetrics.DENSITY_LOW:
                imageView.setLayoutParams(new GridView.LayoutParams(lowVal, lowVal));
                break;
     case DisplayMetrics.DENSITY_MEDIUM:
                imageView.setLayoutParams(new GridView.LayoutParams(medVal, medVal));
                break;
     case DisplayMetrics.DENSITY_HIGH:
                 imageView.setLayoutParams(new GridView.LayoutParams(highVal, highVal));
                 break;
}
于 2012-12-05T17:45:26.353 回答
0

尝试改变这一点:

imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

对此:

imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

您也可以将其设置为 FIT_XY,但它会引入失真。

希望有帮助

于 2012-12-05T17:44:40.470 回答