我在检索安装的Android应用程序的图标时遇到了一些麻烦.以下代码返回所有应用程序的图标,但是,某些应用程序返回带有小图标(可能来自drawable - ldpi文件夹),而某些应用程序带有大图标.
List<PackageInfo> package = getPackageManager().getInstalledPackages(0);
for(PackageInfo p : package){
iApp.icon = p.applicationInfo.loadIcon(getPackageManager());
}
Run Code Online (Sandbox Code Playgroud)
我如何获得大小相同的图标,就像Android的"管理应用程序"部分一样?
我试图以这种方式显示任务列表 -
图标| ApplicationName | 复选框
因为我发现没有listview适配器支持这个,所以我决定开发一个自定义适配器,但我无法获取应用程序的图标.到目前为止我试过这个: -
public View getView(int position, View convertView, ViewGroup parent)
{
View v = convertView;
View row = inflater.inflate(R.layout.item, parent, false);
CheckedTextView ctb = (CheckedTextView)row.findViewById(R.id.checkText);
String pkgName = "com.abc.abc";
ctb.setText("bla bla");
ImageView iv = (ImageView)row.findViewById(R.id.image);
List<PackageInfo> pkgs = activity.getPackageManager().getInstalledPackages(0);
for(PackageInfo p : pkgs)
{
if(p.packageName.equals(pkgName))
{
Drawable d = p.applicationInfo.loadIcon(pm);
iv.setImageDrawable(d);
}
}
return row;
}
}
Run Code Online (Sandbox Code Playgroud)
而且我确信我在这段代码中尝试了一些愚蠢的东西.请尽量抓住我做错的事.
谢谢.