gpt4 book ai didi

android - GridViews 仍然有问题

转载 作者:行者123 更新时间:2023-11-30 04:16:51 25 4
gpt4 key购买 nike

经过两年的 Android 开发,我仍然不能 100% 确定我需要提供哪些资源才能使我的 GridView 在不同尺寸和分辨率的设备上工作。

我还在学习,例如我最近发现你没有提供所有屏幕尺寸的每个可绘制对象——如果你把东西放在 xhdpi 中,那么 Android 足够聪明来调整它的大小大部分时间都在飞行 - 但有一些怪癖。例如,如果我尝试使用仅在 GridView 中的 mdpi 设备上的 drawable-xhdpi bin 中定义的 drawable,drawable 将在视觉上正确调整大小,但它周围的空白不会 - 仍然会是原来的大小。最初我通过为 GridView 和相关适配器 View 的所有方面强行定义尺寸来解决这个问题,但这周围有很多代码味道,所以我手动调整了可绘制对象的大小,将它们放在它们的各自的 bins(drawable-mdpi、drawable-hdpi 和 drawable-xhdpi)并删除了所有图像大小的强制等。

所以我现在有:

    <GridView
android:id="@id/home_image_grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="100dp"
android:gravity="center"
android:listSelector="#00000000"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
>
</GridView>

每个项目的布局是:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="0dip"
android:gravity="center"
android:orientation="vertical"
android:padding="0dip">

<ImageView
android:id="@id/home_button_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

<TextView
android:id="@id/home_button_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/default_text_colour"
android:textSize="@dimen/home_button_text"
/>

</LinearLayout>

到目前为止一切顺利......

我目前正在开发的应用程序已接近完成,并且一直在不同的设备上进行一些测试 - 它在正常屏幕尺寸 xhdpi、hdpi 和 mdpi 设备上看起来不错。然后我将测试扩展到其他设备 - 我正在大屏幕尺寸 mdpi 的 HTC Flyer 上进行测试 - gridview 现在看起来很垃圾 - 它正确地拾取了很小的 mdpi 图像。

四处阅读,我发现了 GridView tutorial GridView tutorial ,上面说要把所有的可绘制对象都放在“可绘制”容器中,所以我听从了这个建议,一切看起来都很垃圾——仔细检查(并实际阅读了示例代码),它们似乎是手动设置每个的大小GridView 中的图像 - 我一开始就是这样做的,这意味着我将不得不为设备的每个排列手动设置图像大小。

所以..我想知道我是否在这里错过了一个技巧 - 我是否应该采用我的第一种方法将图像粘贴到我的可绘制文件夹中并手动强制每个 purmutation 的大小?我应该为屏幕尺寸和分辨率的所有排列绘制一组新图像吗?

我如何保证无论我做什么,它在我没有测试过的设备上看起来都很好?

无论哪种方式,我都觉得自己做错了什么 - 但我不知道如何在没有大量麻烦的情况下正确地做到这一点。谁能帮忙?

最佳答案

我不确定“强制每个排列的大小”是什么意思,但您可以将适当大小的可绘制对象放在以下文件夹中:

  • drawable-mdpi
  • drawable-large-mdpi

每个设备都会从相应的文件夹中选择正确的可绘制对象,您可以为 mdpi 设备分离普通图像和大图像。

这不能解决您的问题吗?

P.S:drawable 文件夹仅用于 XML 可绘制对象或不依赖于设备密度的照片,而不是用于 UI 的图像。这些将针对每种分辨率和密度进行适当缩放。

关于android - GridViews 仍然有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9840553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com