簡體   English   中英

如何獲取列表安裝的應用程序圖標

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM