gpt4 book ai didi

android - 如何在不同设备上保持原始图像的 View 比例?

转载 作者:行者123 更新时间:2023-11-29 20:34:39 31 4
gpt4 key购买 nike

针对一台设备进行优化后, ImageView 会按照布局中定义的正确比例显示。然而,如何才能更进一步,使各种 ImageView 在不同设备上缩放?

android:layout_width="fill_parent"
android:layout_height="fill_parent"

一些半相关问题的建议包括尝试:

android:adjustViewBounds="true"

这并没有改变任何东西。

其他详细信息:

       android:layout_width="100dp"
android:layout_height="100dp"

ImageView 的宽度和高度已经定义。这是阻止设备根据可用屏幕空间缩放各种 ImageView 的原因吗?

最佳答案

欢迎来到这个痛苦的事情! :)

基本上

如果您可以控制图像大小(您使用的资源的情况,例如可绘制对象、 Assets 或预定义大小的图像),您只需进行一些计算以确保您的 ImageView 具有正确的大小大小以适合不同屏幕上的图像。

该框架已经在 Runtime 为此类内容提供了 API,但您甚至不需要在代码中执行此操作。通常在与 UI 设计师合作时,他们会(应该)将复杂 View 的所有屏幕密度和 UI 元素的测量规范交给您,或者至少是基本密度 (MDPI) 之后的规范,因此您可以自己计算其余部分。无论哪种方式,您都可以获得这些值,并根据您的密度使用 values/dimens。使用 scaleType=fitXYadjustViewBounds=true,如您所见,一切顺利。大量引用资料:

当您无法控制图像尺寸时

当您无法控制您需要显示的图像尺寸时(例如,当它被上传到没有尺寸规则的地方时),您可以采用几种方法来尝试将宽高比保持在 运行时。你可以寻找这个并使用似乎最适合你的东西。最近,我一直在使用 Picasso对于我的图像加载器并找到了一种方法,不是为了说调整图像大小(即使 Picasso 确实在需要时调整图像大小),而是用一种非常简单和优雅的方法绕过这种情况:

   Picasso.with(context).load("image_url").fit().centerCrop().into(imageView);

这会产生这种行为,就像在 WhatsApp 中一样:

enter image description here无论 ImageView 的大小如何,图像都不会变形并显示主要部分(中心)。当然,您仍然应该根据当前的屏幕尺寸和密度使用正确的 View 尺寸,以保证最佳体验。

关于android - 如何在不同设备上保持原始图像的 View 比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496954/

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