【发布时间】:2015-12-10 06:34:45
【问题描述】:
我只想在Realm数据库中存储一个Drawable图像文件,但是在Realm Object中分配值后,它显示一条错误消息“错误:不支持字段类型android.graphics.drawable.Drawable”。
public class AppsList extends RealmObject {
public Drawable getAppIcon() {
return appIcon;
}
public void setAppIcon(Drawable appIcon) {
this.appIcon = appIcon;
}
}
Intent i = new Intent(Intent.ACTION_MAIN, null);
i.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> availableActivities = manager.queryIntentActivities(
i, 0);
for (ResolveInfo ri : availableActivities) {
realm.beginTransaction();
appsIconList = realm.createObject(AppsList.class);
appsIconList.setAppLabel(ri.loadLabel(manager).toString());
appsIconList.setAppPackageName(ri.activityInfo.packageName.toString());
appsIconList.setAppIcon(ri.activityInfo.loadIcon(manager).toString());
realm.commitTransaction();
}
请仔细阅读我的帖子,告诉我如何在 Realm 数据库中存储可绘制文件。
【问题讨论】:
-
您可以将可绘制的 id 存储为整数。并稍后检索它。如果它不是您的应用程序可绘制的,那么您应该存储 activityInfo 组件名称。或者最坏的情况,将其转换为位图,然后将其存储为 base64 和更高版本的 base64 > bitmap
-
什么是
"Drawable image file",它与Drawable类有什么关系? -
所以我想填充包管理器应用程序图标,并且此函数返回可绘制。我已经更新了我的帖子,请仔细阅读。
-
那么调用
getApplicationIcon(ApplicationInfo info)或getActivityIcon(ComponentName activityName)或任何其他PackageManager方法有什么问题? -
你能告诉我完整的代码吗???
标签: android android-drawable realm