2

このコードを使用して、最近のアプリのアイコンを正常に取得しています:

//app is an ActivityManager.RunningTaskInfo
//image is an ImageView
ApplicationInfo appInfo = packageManager.getApplicationInfo(app.topActivity.getPackageName(), 0);
Drawable d = packageManager.getApplicationIcon(appInfo);
image.setImageDrawable(d);

ただし、表示される画像は 48x48px のみです。これは、私のデバイスが mdpi であるためだと思いますが、アイコンが非常にぼやけています。デバイスの表示密度に関係なく、常に xhdpi アイコンを取得する方法はありますか? 助けてくれてありがとう。

4

1 に答える 1

0

packageManager.getApplicationIcon(appInfo);から他の密度アイコンを取得できるとは思いません。ハッキングなしで。デバイスの報告された画面DPIをハックするか、何らかの方法でPackageManagerにxhdpi画面サイズがあることを納得させます(ビットマップの密度を指定できますが、それをPackageManagerに渡す方法がわかりません)。

ただし、xhdpiアイコン(および他のDPアイコンも)を取得する簡単な方法があるかもしれません。アプリケーションのapkをコンピューターに取得して解凍できる場合は、アイコンを取得できるres /drawable*フォルダーが内部にあるはずです。ただし、アプリの実行中およびデバイス上の任意のアプリにxhdpiアイコンが必要な場合、これは残念ながら問題の解決策ではありません。後者の場合は、すべてのアプリにxhdpiリソース/アイコンがあるわけではないことにも注意してください。

于 2012-11-23T12:05:55.200 に答える