android - 使用 XML 的特定于平板电脑的 ImageView 宽度/高度/等值?

标签 android gridview imageview scaling tablet

我正在使我的应用与平板电脑兼容,并且我正在尝试了解实现此目的的最佳方式。

我有一个 GridView,每个图像下面都有图像和文本。目前每张图片的高度都设置为 120dp 而不是 wrap_content ,这样它就可以缩放并正确对齐到它的高度,并且一切看起来都很均匀。方向更改效果很好,GridView 自动从 2xN 更改为 3xN。

现在我想把它放在平板电脑上,根据方向(在 10"平板电脑上),GridView 最终为 5xN 和 7xN。但是,为了使 GridView 看起来更好,我宁愿将图像高度更改为更大的值(例如 300dp)并且具有更少的较大尺寸的项目。执行此操作的最佳方法是什么?

我不想只提取元素并复制它的所有值,只更改一个值。理想情况下,我希望能够简单地将高度值放入类似 strings.xml 和 strings-xlarge.xml 的内容中,然后从布局中引用它。那可能吗?我真的很讨厌复制代码/资源。

谢谢。

最佳答案

您正在寻找的是 dimen 标签。它的工作方式与字符串标签类似,但适用于维度。你可以在 values/dimens.xml 中有这样的东西:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="image_size">120dp</dimen>
</resources>

在 values-xlarge/dimens.xml 中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="image_size">300dp</dimen>
</resources>

您的 XML 可以通过@dimen/image_size 引用大小,一切都会为您处理。您还可以通过 Context 中的 getResources().getDimension(R.dimen.image_size) 以编程方式访问它。

请注意,从 3.2 开始,您可以在资源名称中使用像素要求(例如 w720dp),而不是像 xlarge 这样的“桶”。更多信息 here .

关于android - 使用 XML 的特定于平板电脑的 ImageView 宽度/高度/等值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7961621/

相关文章:

android - 获取一个 Cluster 下的所有项目

java - 从对话框 fragment 调用父 fragment 方法

java - Android:线程完成后使用 setContentView()

c# - 将数据源动态绑定(bind)到 gridview

c# - ShowHeaderWhenEmpty、EmptyDataText 和 EmptyDataTemplate 在 gridview 中不起作用

android - Facebook SDK + SlidingMenu SDK = Jar 不匹配!修复你的依赖

Asp.Net GridView EditIndex 竞争条件?

android - 更改屏幕方向时 ImageView 的奇怪行为

java - Imageview 没有显示我的图像?

java - 使用点击监听器绕过堆叠 View