2011-08-19 8 views
3

私は、他のアプリケーションのアイコンを表示するAndroid appwidgetを持っています。他のアプリケーションのアイコンを取得するuri?

私はappInfo.loadIconで他のアプリケーションのアイコンを取得してから、setImageViewBitmapを使ってウィジェットに設定しました。

ウィジェットにアイコンが多すぎると「FAILED BINDER TRANSACTION」エラーが発生するという問題があります。私は、それがビットマップそのものの代わりにイメージURIを使用するのはサイズ制限と解決策から来ていることを理解しています。

他のアプリケーションのアイコンにアクセス可能なURIはありますか?

ありがとうございました。

答えて

4

お試しandroid.resource://[package]/[res type]/[res name]お試しください。はdrawableとなります。パッケージと名前は、ResolveInfoから、またはデータを取得しているどこからでも来なければなりません。

8

多くの場合、@CommonWare's answerは良好ですが、これはしばしば簡単です: android.resource://[package]/[res id] - 特に他のアプリのランチャーアイコンなどの参照が必要な場合。

9

あなたは、リソース名がわからない場合は、あなたも自分のIDでリソースにアクセスすることができます

android.resource://[package]/[res_id] 

アプリのアイコンのリソースIDは、アプリのApplicationInfoで提供されています:

ApplicationInfo appInfo = pm.getApplicationInfo(packageName, 0); 
if(appInfo.icon != 0) { 
    Uri uri = Uri.parse("android.resource://" + packageName + "/" + appInfo.icon); 
} 
関連する問題