2013-01-16 14 views
6

パッケージ(蜂の巣)からhidensityの描画可能

final ApplicationInfo ai = getPackageManager().getApplicationInfo("com.company.hello", 0); 
final Drawable d = getPackageManager().getApplicationIcon(ai); 

も私のhidensity ハニカムデバイス上で48×48(MDPI)ドロウアブルを盗んこのコードを取得します。

drawableをBitmap.createScaledBitmapで拡大できるとすれば、既にそこにある高濃度アイコンを抽出する方法を尋ねています。 メソッドgetDrawableForDensityはsdk < 15で利用できませんが、無料でパッケージで利用可能になったときに描画するアイコンごとにスケーリング関数を呼び出すのは不便です。私のデバイスの表示濃度ながら質問は以下であるために忘れ恵み

ため

編集: は必ず相対hdpiの解像度フォルダ内の72x72のアイコンを持っているため、我々が知っている独自のパッケージを与え、別のパッケージからこのアイコンを取り出す方法は?

THIS FUNCTIONは、Honeycomb環境では使用できません。

+0

ドロアブルを一度使用していますか?私はあなたのイメージを取得するために 'R.drawable.id'を使うことができるようですが、あなたが現在実行しているサイズのスクリーンのものを自動的に取得します。 – FoamyGuy

+0

密度と密度を混同しているかもしれません(違います)。あなたはPNGリソースをスケーリングするべきではありません(これは異なる解像度の描画可能ファイルを使用する目的全体です)。 – Booger

+0

こんにちはFoamGuy私は既に特定のIDでアイコンを抽出しようとしましたが、結果は同じです:48x48 drawable。 Booger:私は何も混乱させていません。パッケージがあれば、そこにいた72x72のドロワブルが欲しいです。私の画面の密度はHI_DENSITYで、ソリューションはgetDrawableForDensityかもしれませんが、利用できません。 – lorenzoff

答えて

1

が良い密度を使用して描画可能directlyyを見つけるために、あなたはこれを試してみて:

mContext.getResources().getDrawable(R.drawable.mydrawable); 

問題は何ですか?アンドロイドが48x48のアイコンを取得した場合は、それは良いアイコン、または良いres/drawable-フォルダにアイコンを設定していない場合です。

+0

はい、あなたの答えはありがたいですが、48x48アイコンが良いかどうかではなく、デバイスの密度に関係なくパッケージからすべての解像度アイコンを抽出する方法は問題ではありません。 API> 15を使って書いたように、私は必要なものだけを実行する関数を利用できます(getDrawableForDensity)。この関数を使わずに同じ結果を得る方法が問題です。 – lorenzoff

関連する問題