Android 如何有效地在本地保存可提取文件?
我提取的可提取数据如下:Android 如何有效地在本地保存可提取文件?,android,api,Android,Api,我提取的可提取数据如下: List<ResolveInfo> appsList; appsList = pm.queryIntentActivities(new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER),0); 在哪里 位置 是一个可变的整数 someView 这是一个ImageView 虽然它工作得很好,但不知怎的,我正在寻找一种方法 直接保存绘图,无需将其转
List<ResolveInfo> appsList;
appsList = pm.queryIntentActivities(new Intent(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_LAUNCHER),0);
在哪里
位置
是一个可变的整数
someView
这是一个ImageView
someView.setImageDrawable()
getFilesdir()、getCacheDir()
或SQLite或任何其他。假设大小为2-10KB的图像为50-200张,那么最快的保存和检索方式是什么李>
不知何故,我正在寻找一种方法,直接保存绘图,而无需将其转换为位图
您不能持久化可绘制的
<代码>可绘制是一个界面
我可以用序列化的方式来做吗
可绘制的
的一些实现可能是可序列化的
这是个好主意吗
我怀疑它会起作用,更不用说可靠地起作用了。不过,你当然可以尝试一下
保存和检索的最快方法是什么
我会从不存钱开始。考虑到您的副本在任何时候都可能过时(例如,应用程序更新),我看不出您从将这些内容写入磁盘中获得了什么价值。需要图标时,请从PackageManager
获取
如果您觉得有必要将这些映像保存到磁盘,那么简单的磁盘I/O应该比SQLite事务更快
Drawable drawableIcon;
Bitmap icon;
File file;
ResolveInfo ri;
for (int i = 0; i < appsList.size(); i++) {
ri = appsList.get(i);
drawableIcon = ri.loadIcon(pm);
//METHOD to convert Drawable to Bitmap
icon=drawableToBitmap(drawableIcon);
try {
file=new File(context.getFilesDir(),ri.activityInfo.packageName);
FileOutputStream fos = new FileOutputStream(file);
icon.compress(Bitmap.CompressFormat.PNG,100,fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
someView.setImageBitmap(BitmapFactory.decodeFile(context.getFilesDir()+"/"+cachingClass.appsList.get(position).activityInfo.packageName));