在 Android 上调整 GridView 中的图像大小

发布于 2024-11-10 17:47:42 字数 381 浏览 5 评论 0原文

我按照本教程创建一个 GridView

这行:

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

尺寸 85x85 对于我的 Wildfire 来说非常好,但在 HTC Desire 上它看起来很小。 如何根据屏幕更改图像大小?

我有 2 种不同的布局,但 Gridview 在 XML 文件中没有任何属性来更改图像大小。

I follow this tutorial to create a GridView:

This line:

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

Size 85x85 is great for my Wildfire, but on HTC Desire it looks very small.
How can I change the image size according to the screen?

I have 2 different layouts, but Gridview hasn't any attribute in the XML files to change the image size.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

安稳善良 2024-11-17 17:47:42

您可以尝试根据当前设备的像素密度进行调整。

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;
}

You could try to make an adjustment based off the pixel density of the current device you are on.

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;
}
浅浅淡淡 2024-11-17 17:47:42

与 willytate 的答案类似,但你最好创建一个 dimension< /a> xml 中的值(85dp)并像这样检索它:

  int size = resources.getDimensionPixelSize(R.dimen.your_dimension);

这样,宽度/高度的大小将保持一致,而无需您担心太多。

Similar to willytate's answer, but you're better off creating a dimension value in an xml (for 85dp) and retrieving it like so:

  int size = resources.getDimensionPixelSize(R.dimen.your_dimension);

That way, the width/height will be sized consistently, without you having to worry about much.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文