gpt4 book ai didi

android - 有什么方法可以判断可绘制资源是从哪个文件夹中膨胀出来的?

转载 作者:搜寻专家 更新时间:2023-11-01 08:17:11 25 4
gpt4 key购买 nike

有谁知道当我从资源中请求特定的可绘制对象时,有什么方法可以判断 Android 系统将解析到哪个文件夹(drawable-longdrawable-notlong , 例如)?我想确保它以我期望的方式加载资源(例如,确保纹身真的是 ldpi 而不是 mdpi 因为它就在边界线上).

从 Resources 获取可绘制对象后,我总是可以打印出它的固有大小,并根据我拥有的各种图像大小进行检查,但这有点麻烦。另外,我的公司允许其客户在应用程序发布之前对其进行换肤,因此在换肤后我将无法再依赖该方法。

我尝试使用 Resources.getName(resId) 但它没有给出文件夹名称,据我所知你可以获得资源的 AssetFileDescriptor但您无法获得实际的文件名。

更新:自问这个问题以来,我发现您可以访问 resource qualifier names 中的许多内容。通过 ConfigurationDisplayMetrics 类(都可以通过 getResources() 访问)。 DisplayMetrics 可以给你 ldpi/mdpi/hdpi 指定,Configuration 可以给你 small/normal/large 屏幕尺寸,long/notlong 纵横比、区域设置、移动网络代码和其他硬件信息。但是,如果您有一个复杂的资源集,这仍然不能肯定地确认您正在获得您期望的资源。它也不能保护您免受报告错误值的错误的影响,例如 DisplayMetrics 报告错误的 xdpiydpi 的 Motorola Droid 错误(它报告 96dpi,而实际值更像是 265dpi!可怕的错误。)。

最佳答案

另一种方法是使用两个不同的图像,名称相同,红色在一个资源文件夹中,蓝色在另一个资源文件夹中。当它膨胀时,您将能够看到它来自哪一个。

如果你真的想发疯,为每个文件夹制作一张图片,上面写着“ldpi”或“xhdpi”等,当你开始你的项目时,你可以记下哪些是你想要明确测试的每个设备。


来自 Mark Allison ,相同的想法,但值目录的字符串包含它所在的存储桶的名称 - 它比创建图像更省力!

关于android - 有什么方法可以判断可绘制资源是从哪个文件夹中膨胀出来的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3052964/

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