2012-02-29 13 views
2

標準の4x4グリッドではなく2x3グリッドのアイコンを使用するカスタムランチャーデスクトップを作成しています。使いやすさを考慮して、ショートカットアイコンを通常より大きく表示する必要もあります。サイズ変更されたアイコンを作成することでこれを達成できますが、明白な結果はピクセル化です。開発中のデバイスはMDPIなので、元のアイコンは48x48ピクセルです。方法:hdpiリソースをmdpiシステムにロード

これは私の質問です。デスクトップのアプリケーションで使用できるHDPIまたはXHDPIリソースがある場合、それらを読み込む方法はありますか? Androidの自動リソース処理をバイパスする明白な方法はありません。

PackageInfo pi = packages.get(i); 

ai = new AppListAdapter.AppItem(); 
try { 
    Context otherAppCtx = getApplicationContext().createPackageContext(pi.applicationInfo.packageName, CONTEXT_IGNORE_SECURITY); 
    ai.Icon = otherAppCtx.getResources().getDrawableForDensity(pi.applicationInfo.icon, DisplayMetrics.DENSITY_HIGH); 

} catch (Exception e) { 
    ai.Icon = pi.applicationInfo.loadIcon(getPackageManager()); 
} 

答えて

3

は、私は別のアプリケーションからhdpi描画可能なアイコンをロードするために用いられる溶液(唯一のAndroid 4.0で動作します)です。私はそれを自分で実装することを考えましたが、作業の大半はネイティブコードで行われていますが、これはすぐにはアクセスできませんでした。今のところ回避策を考えていきます。しかし、ありがとう!
+0

うん、私は、彼らは()getDrawableForDensityを追加したことを見た:ここ – jsmith

+0

どのような回避策を使用するのか説明できますか? – Bytok

+0

最悪のシナリオは、サイズ変更(ピクセル化)アイコンを続けることです。しかし、我々は、痛みを最小限に抑えるために作成できるすべてのアプリケーションにhdpiアイコン(mdpiフォルダ内)を使用しています。私はまだこれをもう一度見直し、もう少し試してみたいと思っています。現在のリソースに基づいてResourceオブジェクトを作成できますが、変更されたDisplayMetricsを使用することができます。 – jsmith

関連する問題