gpt4 book ai didi

android - 寻找优雅的 appwidget 皮肤解决方案

转载 作者:太空狗 更新时间:2023-10-29 12:58:49 27 4
gpt4 key购买 nike

我有一个 appwidget 应用程序,我想让用户创建可以在运行时应用的皮肤。我的首选解决方案是使用带有 9-patch png 图像的 apk 文件,这些图像可以拉伸(stretch)以适合 ImageView 的小部件,但是它开始看起来我可能不得不使用另一种打包技术(例如 zip 文件)。

我尝试过的:使用 context.getResourcesForApplication(my.app).getResources... 将 9-patch 资源导入为 Drawable,使用 Canvas 将它们转换为位图,并使用 setImageViewBitap 将位图设置为 RemoteView。这不起作用,因为我需要在转换期间指定生成的 View (myBitmap.setBounds(..,..)) 的大小,并且我的 appwidget 中的某些宽度/高度不固定。也许有一种方法可以获得我错过的高度等。

使用 setImageViewUri() 将资源直接导入 RemoteView这不起作用,因为该函数似乎不再读取 android.resource://Uri(我在 ImageView 源代码中四处寻找,它似乎只读取文件路径和内容://Uri)

使用 setImageViewResource() 将资源直接导入到 RemoteView 是行不通的,因为从外部包中检索到的 ID 显然不包含包引用。

我试图避免的是对我所有的应用程序小部件的宽度和高度进行硬编码,或者使用单独的打包方案。

有没有人很好地实现了 appwidget 皮肤并想分享知识?或者,我的逻辑中可能存在某个可以指出的漏洞。

如果需要,我可以提供代码,但我现在这里没有代码。

最佳答案

我找到了这个示例解决方案 http://www.siroccosoftware.com/devblog/?p=10

ImageView

Uri path = Uri.parse("android.resource://PACKAGE_NAME/RESOURCE_ID");

views.setImageViewUri(ID, path);

远程查看

RemoteViews views = new RemoteViews("PACKAGE_NAME", "LAYOUT_RESOURCE_ID");

关于android - 寻找优雅的 appwidget 皮肤解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2249174/

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