首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在delphi中获得可绘制的资源ID?

如何在delphi中获得可绘制的资源ID?
EN

Stack Overflow用户
提问于 2017-04-18 22:55:30
回答 1查看 777关注 0票数 0

在Delphi中,我将图像资源添加到项目中(通过项目>资源和图像),但是我需要一个java函数在应用程序包中提供一个资源ID来使用。是否可以从我的delphi资源文件或名称中检索资源ID (整数)?

如果不是,我们如何在delphi中添加自定义资源映像并检索它的资源ID?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 08:28:58

获取资源ID

若要检索资源的资源ID:

代码语言:javascript
代码运行次数:0
运行
复制
id := TAndroidHelper.GetResourceID('my_image', 'drawable');

如果您使用的是Delphi的旧版本,您可能需要使用另一种更老的方法:

代码语言:javascript
代码运行次数:0
运行
复制
id := TAndroidHelper.Context.getResources.getIdentifier(StringToJString('my_image'), StringToJString('drawable'), TAndroidHelper.Context.getPackageName);

更短、更新(更方便)的GetResourceID函数仅仅是对较早版本的一个包装器。

在任何一种情况下,my_image都是您需要其ID的图像资源的文件名(没有扩展名)。

drawable参数告诉助手您请求的是一个可绘制的资源ID (例如,与stringlayout相反)。

添加图像资源

若要向项目添加自定义映像资源,请使用IDE中的项目菜单的部署选项。

添加文件并将remote路径设置为合适的可绘制资源文件夹,例如:

代码语言:javascript
代码运行次数:0
运行
复制
res\drawable
res\drawable-xxhdpi

etc

您可以将图像的缩放版本放置在每个可绘制的文件夹中,以获得不同的分辨率。在每种情况下,remote_name必须是相同的。特定的可绘制文件夹确定适用的设备解析。

或者,您可以简单地提供一个适当的高分辨率文件。您可以将其放置在适当的高分辨率文件夹(例如drawable-xxxhdpi)中,也可以简单地放在drawable中。

无论哪种方式,Android都将在运行时自动缩放图像,以便在必要时进行其他设备分辨率。

在可绘制缩放、不同显示类型的替代版本等方面,有大量的Android参考资料,包括当然,Android文档本身也是

但是,在引用您的注释时,不需要XML文件来添加直观的图像。

其他类型的可提取资源可能需要额外的XML,但这将在很大程度上取决于特定需求的性质。

把一切都聚集在一起

在下面的屏幕截图中,突出显示的条目是我为PNG图像资源添加的。该文件位于“我的项目”文件夹中,因此没有本地路径(第一列)。

文件名为appstore.png,我已经将部署配置为将该文件的一个副本放在res\drawable' folder of the application when it is deployed (the远程文件夹中)。

此文件将依靠自动缩放在不同分辨率设备上显示。

要获得该资源的资源ID,我只需编写:

代码语言:javascript
代码运行次数:0
运行
复制
id := TAndroidHelper.GetResourceID('appstore', 'drawable');
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43483523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档