gpt4 book ai didi

android - 在所有屏幕上一致调整位图大小的万无一失的方法是什么

转载 作者:太空狗 更新时间:2023-10-29 15:15:50 25 4
gpt4 key购买 nike

我的 Android 应用程序中的标尺需要在所有屏幕上准确测量,无论尺寸或密度如何。标尺是我通过 BitmapFactory 设置到 ImageView 的可绘制资源。

我最初的方法是将位图设置为 ImageView ,其相对 layout_width 设置为固定的 50mm(基础 png 的精确宽度)并且其缩放类型为 FIT_CENTER

因为我发现 Android 的预缩放非常令人沮丧,所以我尝试通过在 list 中声明 android:anyDensity="true" 并结合使用BitmapFactory 选项 inScaled = "false"

我使用的标尺位图是 320dpi png,所有尺寸均为 50mm 宽。我的想法是提供高分辨率图像,可以轻松地很好地缩小到低密度屏幕上所需的确切宽度。

上述方法已在几乎所有经过 Beta 测试的设备上成功运行。但是在 HTC Evo 4G 上,标尺显得太大了。后一种设备运行 Android 2.3.5,是迄今为止唯一报告的故障。

最佳答案

我在我的设备上使用 Android 2.3.5 时遇到了同样的问题,通过手动重新缩放所有图像来解决。我的图像是在运行时设置到 ImageView 中的,所以之前重新缩放图像对我来说不是问题。

byte[] icon = Icon.getIcon(mContext.getFilesDir());
Bitmap bitmap = BitmapFactory.decodeByteArray(icon, 0, icon.length);
int width = LicenseDialog.convertDpToPx(mContext, 48);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap.createScaledBitmap(bitmap, width, width, true).compress(CompressFormat.PNG, 100, stream);
icon = stream.toByteArray();

关于android - 在所有屏幕上一致调整位图大小的万无一失的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900306/

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