我正在研究一个帮助我学习android开发的小文件管理器,我遇到了一些加载apk文件apk文件的问题。我正在尝试加载与apk相关联的图标。我打算在我的适配器中加载它。
以下是我使用的方法:
public Bitmap getApkBitmap(File f) {
PackageInfo packageInfo = getContext().getPackageManager().getPackageArchiveInfo(f.getAbsolutePath(), PackageManager.GET_ACTIVITIES);
ApplicationInfo appInfo = packageInfo.applicationInfo;
if (Build.VERSION.SDK_INT >= 8) {
appInfo.sourceDir = f.getAbsolutePath();
appInfo.publicSourceDir = f.getAbsolutePath();
}
Drawable icon = appInfo.loadIcon(getContext().getPackageManager());
Bitmap bmpIcon = ((BitmapDrawable) icon).getBitmap();
return bmpIcon;
}
问题:
它运行正常,但问题是,每当我有很多apks,或者我滚动得太快,应用程序崩溃,我会遇到一些回忆。此外,无论何时我滚动,它都非常迟钝,并且根本不平滑。
答案 0 :(得分:1)
您可能需要实现一个lazylist来按需显示图像。这可以解决你的记忆问题。
要考虑的另一件事是如果图像太大则缩小图像。这可以解决滞后列表问题。