0

私はAndroid開発に関してよくある問題を静かに抱えていると思いますが、私が探している答えを見つけることができないようです。

Photoshop 800x480px(240ppi)でキャンバスを作成し、そのキャンバス内に282 x 121pxのロゴを作成した場合、画像を表示すると、同じ800x480pxのエミュレーターで画面の3/4を占める理由がわかりません。

ロゴを表示するために使用するコードは次のとおりです

Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo);

//in the onDraw
canvas.drawBitmap(logo, 0, 0, null);

前もって感謝します!


考えられる解決策

これが物事を行うための最良の方法であり、フィードバックを適用するかどうかわからないので、私はこの解決策に出くわしました(通常、あなたがすでに質問を投稿したとき:D)は次のように画像をコーディングすることでした:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;

//Load images
logo = BitmapFactory.decodeResource(getResources(), R.drawable.logo, options);
4

1 に答える 1

1

事前スケーリングのAndroidが時々行うため、画像はおそらくエミュレーターの画面の3/4しか占めていませんでした。

複数の解像度と画面サイズを処理する方法については、この記事をご覧ください。

ドローアブルを「res/drawable-mdpi/」ディレクトリまたは「res/drawable-ldpi /」に配置して、中密度と低密度の画面を区別することができます。もう1つのオプションは、事前スケーリングを防ぐために、「res /drawable-nodpi/」ディレクトリに配置することです。同じ効果を得るために、いくつかの画像を「res/raw」フォルダーに配置しました。

ただし、現在の方法が機能する場合は、それを実行してください。

于 2011-05-16T22:15:21.187 に答える