800 x 300 の画像があります。これは、テスト プラットフォームの解像度 (800x480 の HTC Desire) の幅です。この画像を画面に描画しようとすると、奇妙にスケーリングされます。画面の左側にこぼれ、垂直方向のほぼすべてを埋め尽くします。
私は次のようなコードを使用しています:
canvas.drawBitmap( screen[1], new Rect(0,0,800,300), new Rect(0,0,800,300), null);
何らかの理由で
width_x = canvas.getWidth();
width_y = canvas.getHeight();
私の解像度は533 x 320と報告されています。これは、Androidが使用する魅力的なスケーリングシステムの罵倒削除のためであると想定しているため、アプリはすべての電話で同じサイズに表示されますが、これは無視したいと思います. 私はゲームを書いているので、スケーリングとポジショニングを自分で処理したいと考えています。たとえば、利用可能になった場合により多くの画面領域を使用します。Android のベストプラクティスはアイコンベースのアプリケーションに適しているかもしれませんが、絶対ピクセル位置に描画し、画面の絶対解像度情報を取得したいと考えています。
したがって、私の質問はこれです-これは絶対に不可能ですか? Androidにはこれを行うためのシンプルで効果的なシステムがあるため、完全に禁忌である場合、それが何であるかを知りたい. dpi は私のゲーム デザインには関係ありません (これが PC ゲームの場合と同様に、関係ありません)
何らかの方法で解像度を指定しない限り、おそらく私の画面は実際には 533 x 320 でしょうか? 幅と高さのスケーリング値を使用してみましたが、画像は画面上で大まかに正しいサイズでしたが、何らかのスケーリングが発生したため、エッジがギザギザになりました。したがって、画面が表示できるすべてのピクセルにアクセスできませんでした。
それをスケーリングするために、私は次のようなものを使用しました
canvas.drawBitmap( screen[1], new Rect(0,0,800,300), new Rect((int)(0.0f),(int)(0.0f),(int)(533.0f),(int)(187.5f) ))、 ヌル); // テストのために打ち込んだ数値 - 報告された画面解像度と同等の比率。恐ろしく見える
どんな助けでも大歓迎です。
乾杯、
ロビン。