[英]How to get a list installed app icons
我正在嘗試使用以下代碼獲取已安裝的應用程序圖標的列表,但是它僅顯示可繪制路徑的列表,而不顯示圖標(即android.graphics.drawable.BitmapDrawable@417530c8),
有人可以告訴我我在做什么錯。
謝謝
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView appList = (ListView) findViewById(R.id.appList);
ArrayList<Drawable> cacheArrayList = new ArrayList<Drawable>();
ArrayAdapter<Drawable> aa = new ArrayAdapter<Drawable>(this,
android.R.layout.simple_list_item_1, cacheArrayList);
appList.setAdapter(aa);
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm
.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
// cacheArrayList.add((String) packageInfo.loadLabel(pm));
cacheArrayList.add(packageInfo.loadIcon(pm));
}
}
}
默認情況下, ArrayAdapter
僅在基礎數組的每個元素上調用toString
。 要同時使用ImageView
,您需要編寫ArrayAdapter
的子類,該子類重寫getView
方法。 使用包含ImageView
的布局,然后對其進行重寫的getView
調用setImageDrawable
,並從數組傳遞Drawable
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.