Android 使用XML的平板电脑特定图像视图宽度/高度/etc值?

Android 使用XML的平板电脑特定图像视图宽度/高度/etc值?,android,gridview,imageview,scaling,tablet,Android,Gridview,Imageview,Scaling,Tablet,我正在使我的应用程序与平板电脑兼容,我正在努力了解最好的方法是什么 我有一个网格视图,每个图像下都有图像和文本。目前,每个图像的高度都设置为120dp,而不是包裹内容,这样可以根据其高度进行适当缩放和对齐,所有内容看起来都很均匀。方向更改非常有效,GridView会自动从2xN更改为3xN 现在我想把它放在平板电脑上,GridView最终是5xN和7xN,这取决于方向(在一个10英寸的平板电脑上)。然而,为了让GridView看起来更好,我宁愿将图像高度更改为更大的值(比如300dp),并减少尺

我正在使我的应用程序与平板电脑兼容,我正在努力了解最好的方法是什么

我有一个网格视图,每个图像下都有图像和文本。目前,每个图像的高度都设置为120dp,而不是包裹内容,这样可以根据其高度进行适当缩放和对齐,所有内容看起来都很均匀。方向更改非常有效,GridView会自动从2xN更改为3xN

现在我想把它放在平板电脑上,GridView最终是5xN和7xN,这取决于方向(在一个10英寸的平板电脑上)。然而,为了让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>
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="image_size">300dp</dimen>
</resources>

120dp
在值xlarge/dimens.xml中:

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

300dp
您的XML可以通过@dimen/image\u size引用大小,一切都会为您解决。您还可以通过编程方式从上下文中使用getResources().getDimension(R.dimen.image\u size)访问它


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

您应该能够使用其他xml文件(tablet/hdpi/mdpi/ldpi)根据正在加载应用程序的设备类型加载附加大小。与加载视图之前替换字符串的方式相同,
高度
宽度
参数也应该是可能的。您尝试过吗?您能澄清一下吗?您的答案不清楚。我应该将尺寸放在哪里价值观