【发布时间】:2012-06-21 16:35:06
【问题描述】:
我目前正在为android创建一个支付SDK,因此我想根据不同的情况将sdk/library项目中的一些图像发送到实际应用程序中。我希望应用程序的用户使用drawables,但我不希望他们手动设置(即直接从SDK的drawable文件夹中获取),SDK应该根据不同情况自动选择要使用的图像。
目前我拥有的是一个 DAO 类,它在初始化时有类似的东西:
case (MASTERCARD):
this._logo = getResources().getDrawable(R.drawable.mastercard_securecode);
然后在应用程序中,我希望能够获取该可绘制对象并在 ImageView 中使用它,如下所示:
img.setImageDrawable(DAOObject.getLogo());
但是当我运行这个时,我得到了
06-15 20:25:18.933: W/dalvikvm(625): VFY: 无法解析 LPackagePath/R$drawable 中的静态字段 6 (mastercard_securecode);
由于上述错误,getLogo 将返回空指针异常。
任何人都知道如何正确实现这一点,所以我没有收到上述错误,并且仍然能够以这种方式实现它,应用程序可以动态发送可绘制对象?
非常感谢任何帮助!
【问题讨论】:
-
switch case语句中的setter方法在哪里?有些像 DAOObject.setLogo()
-
switch case语句放在DOAObjects构造函数中,所以我直接访问本地的_logo变量就可以了。
-
您使用的是最新版本的 Android SDK 工具吗?
-
是的。我正在将库项目作为 jar 文件加载到应用程序的 libs 文件夹中。库项目是包含实际资源和 switch 语句的项目。
-
如何从库项目中生成 jar 文件?请注意,生成的一个 Eclipse 不包含 R.class,它仅在 Eclipse 清理/构建您的应用程序项目时临时使用,并且不假定用作完整的自包含 jar 文件。
标签: android drawable android-imageview android-image