获取资源 ID
要检索资源的资源 ID:
id := TAndroidHelper.GetResourceID('my_image', 'drawable');
如果您使用的是旧版本的 Delphi,您可能需要使用替代的旧方法:
id := TAndroidHelper.Context.getResources.getIdentifier(StringToJString('my_image'), StringToJString('drawable'), TAndroidHelper.Context.getPackageName);
更短、更近(也更方便)的GetResourceID 函数只是对早期较长版本的包装。
在任何一种情况下,my_image 都是您需要其 ID 的图像资源的文件名(不带扩展名)。
drawable 参数告诉助手它是您请求的可绘制资源 ID(而不是 string 或 layout,例如)。
添加图片资源
要向您的项目添加自定义图像资源,请使用 IDE 中 Project 菜单的 Deployment 选项。
添加您的文件并将remote 路径设置为合适的可绘制资源文件夹,例如:
res\drawable
res\drawable-xxhdpi
etc
您可以将自己的缩放版本的图像放在每个可绘制文件夹中以获得不同的分辨率。 remote_name 在每种情况下都必须相同。具体的drawable文件夹决定了适用的设备分辨率。
或者,您可以简单地提供一个合适的高分辨率文件。您可以将其放置在适当的高分辨率文件夹中(例如 drawable-xxxhdpi)或简单地放置在 drawable。
无论哪种方式,Android 都会在运行时根据需要为其他设备分辨率自动缩放图像。
有很多关于可绘制缩放、不同显示类型的替代版本等主题的 Android 参考资料,包括the Android documentation itself of course。
参考您的评论,但是添加简单图像的可绘制对象不需要 XML 文件。
其他类型的可绘制资源可能需要额外的 XML,但这在很大程度上取决于您的特定需求的性质。
把所有东西放在一起
在下面的屏幕截图中,突出显示的条目是我为 PNG 图像资源添加的条目。该文件位于我的项目文件夹中,因此没有本地路径(第一列)。
文件名是appstore.png,我已将部署配置为将该文件的一份副本放在res\drawable' folder of the application when it is deployed (theremote` 文件夹中。
此文件将依赖自动缩放以在不同分辨率的设备上显示。
要获取该资源的资源 ID,我只需编写:
id := TAndroidHelper.GetResourceID('appstore', 'drawable');