0

Android でアプリをリリースしたばかりですが、高密度ディスプレイを使用している顧客に問題があります。

何が起こっているのかを確認するためにデバッグを追加しました。ここに出力例があります

デバイス: Nexus 10 Android バージョン: 4.2.2 DisplayMetrics{density=2.0, width=2560, height=1504, scaledDensity=2.0, xdpi=298.275, ydpi=298.823} MainView w=1900 h=1342 mDrumKitMode=BIG KitView w=640 h=1266 x=1920.0 y=0.0

メイン ビューは、スクリーン ショットの左側にある楽譜領域です。幅 1900 (MainView w=1900 h=1342) のドラム キットは、幅 640、高さ 640 のビットマップです。どういうわけか、ディスプレイはそれを親の全高になるようにスケーリングしています(KitView w = 640 h = 1266 x = 1920.0 y = 0.0)。これは、密度が 1.0 のディスプレイでは発生しません。

何らかの理由で大きなディスプレイでエミュレーターを動作させることができず、高密度のタブレットを持っていないため、これをテストする方法がありません。

誰が何が起こっているのか考えていますか? ありがとう

ここに画像の説明を入力

同様の問題を抱えている別の顧客がいます

デバイス: A700 Android バージョン: 4.1.1 DisplayMetrics{density=1.5, width=1920, height=1128, scaledDensity=1.5, xdpi=224.73732, ydpi=224.11765} MainView w=1260 h=1044 mDrumKitMode=BIG KitView w=640 h =968 x=1280.0 y=0.0

scaledDensity=1.5 パラメーターだと思います。おそらく、自動画像スケーリングを無効にするために何かをする必要があります。つまり、scaledDensity=1 を設定しますか?

アプリケーション全体が正確なピクセル位置に基づいていることを追加する必要があります。これは、楽譜の表示と、ベース ドラム キットの画像の上に画像を重ねるドラム キットの表示の両方です (ドラム ペダルが間違った場所にあることがわかります)。画像も)。さまざまな表示サイズとユーザー設定に合わせてアプリ内でスケーリングを処理するため、自動スケーリングは必要ありません。

また、すべてのドラム キット イメージが drawable-mdpi にあり、他のすべての dpi が空であることも追加する必要があります。これは、画面サイズとユーザーの好みに基づいてプログラムで画像をスケーリングするためですが、おそらく問題は xhdpi にいくつかの画像を配置する必要があると思いますか? 私はそれを行うことができると思いますが、それは大変な作業になります。

PS、私はここで私の答えを見つけたと思いますhttp://developer.android.com/guide/practices/screens_support.html

画面密度ごとに異なるビットマップ ドローアブルを提供する

デフォルトでは、Android はビットマップ ドローアブル (.png、.jpg、および .gif ファイル) と Nine-Patch ドローアブル (.9.png ファイル) をスケーリングして、各デバイスで適切な物理サイズでレンダリングします。たとえば、アプリケーションがベースラインの中程度の画面密度 (mdpi) に対してのみビットマップ ドローアブルを提供する場合、システムは高密度画面では拡大し、低密度画面では縮小します。このスケーリングにより、ビットマップにアーティファクトが発生する可能性があります。ビットマップが最高の状態で表示されるようにするには、画面密度ごとに異なる解像度の代替バージョンを含める必要があります。

すべての -mdpi イメージを -xhdpi にコピーするだけでうまくいくのだろうか?

4

1 に答える 1

1

このアプリをデバイス間で使用する場合は、存在するすべてのさまざまな密度フォルダー (xhdpi、xxhdpi、hdpi、mdpi) のイメージを配置するしかありません。さまざまなデバイスにさまざまなレイアウトを提供するために、含める実際のレイアウトを変更することも検討する価値があります。

これを処理する方法については、ドキュメントを参照してください。 http://developer.android.com/guide/practices/screens_support.html

それが重すぎる apk を作成する場合 (画像の数がわかりません)、別の方法で、デバイス間で画像をネイティブ密度で使用するスケーリングなしの描画可能フォルダーを指定できます。mdpi デバイスのみをサポートするつもりがない限り、mdpi のみを使用するのは間違いです。

于 2013-03-31T01:04:00.183 に答える