2011-01-26 11 views
3

私のアンドロイドデスクトップにショートカットを作成するときに問題があります。intent.putExtra(Intent.EXTRA_SHORTCUT_ICON、bmp)画像が中心から外れています

まず、72x72のアイコンがあります。これをSDカードからBitmapオブジェクトに読み込みます。

このビットマップオブジェクトをアイコンリソースとして設定しました。

私が抱えている問題は、私が設定したときに、ショートカットの画像が中央から外れて途切れてしまうことです。画面のメトリックから、私は72x72としてサイズを取得しますが、取引の内容はわかりません。

コード:

Bitmap theBitmap = BitmapFactory.decodeFile("/sdcard/icon.png"); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, theBitmap) 

私はそれをリサイズしようとしたキャンバスを利用し動作するようにそれを持っている、描画可能と電話を再起動したときに別のビットマップは、しかし、それは小さなサイズに戻ります。描画可能リソースは、それが完璧に見えるように非常に同じアイコンを使用して、そのダイナミックではない

Parcelable iconResource = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); 

サムスンエピック4Gのを使用して2.1

+0

を? コードを投稿できますか? – Marcovena

答えて

7

/ワット私は同様の問題がありました。ランチャーのソースコードを見て、最初のビットマップサイズが小さすぎるとアイコンが正しく表示されないバグがあることがわかりました。最初の128×128に

スケールビットマップを:

Bitmap scaledBitmap = Bitmap.createScaledBitmap(theBitmap, 128, 128, true); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, scaledBitmap); 

それは、それを修正します。

+0

イメージを128x128にサイズ変更すると、すべての携帯電話で使用できますか?これはショートカット画像の標準サイズですか - 72x72が正しいサイズであるという印象を受けました。 – JohnnyO

+0

ランチャーは独自のサイズ変更コードを実行しますが、サイズによっては失敗します。 128への事前サイズ変更は、正しく動作することを保証します。最終的な結果は、実行中のデバイスの解像度に応じてリサイズされます。私はこのアプリをUltimateFavesPROで使用しています。これは15万回以上ダウンロードされており、この問題について何の不満もありません。私のために – Lior

+0

、シアン9(ICS)で、128x128はうまく動作しませんが、72x72はうまく動作します。どうして? –

5

それは長い時間前にスレッドだけど、私は、プロパティのソリューションが見つかりました:あなたは、標準のホームアプリに対するあなたのコードを使用してweird..are

int size = (int) getResources().getDimension(android.R.dimen.app_icon_size); 
installer.putExtra(Intent.EXTRA_SHORTCUT_ICON, Bitmap.createScaledBitmap(b, size, size, false)); 
関連する問題