0

私は画像の解像度を知っており、Androidでそれらをサポートすることは、Androidを取り巻くかなり一般的な質問ですが、私がやりたいことを扱った質問や投稿をオンラインで見つけることができないようです。

Androidデバイスの背景として設定した地図があります。次に、特定の都市が存在する場所にタッチ可能なポイントと画像をオーバーレイします。私の問題は、都市をさまざまなデバイスに配置することをどのように正しく処理する必要があるかです。

誰かが尋ねた場合、dpiごとに異なる画像があります。ただし、この場合、背景のスケーリングされたサイズに基づくパーセンテージを使用して、xとyの位置を固定する正しい方法です。それは私が何度も訪れている解決策ですが、背景画像の拡大縮小されたサイズを取得する方法をまだ考えていません。

フィードバックをいただければ幸いです。ライアン

4

2 に答える 2

1

Android内では、dpi /重みの組み合わせを使用して、背景の特定の場所に画像を重ねるのは非常に困難です。問題の1つは、背景がどのようにスケーリングするかです。提案された9パッチの画像を使用していますか、それともAndroidに画像をトリミングまたは縮小させていますか?この後でも、電話の「dpi」値は正確ではありませんが、OSは事前定義された乗数(hdpiの場合は1.5xなど)を使用して、画像のサイズをすばやく推定します。「真の」dpiを取得するには、次のようなものが必要です。

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

float xDpi = dm.xdpi;
float yDpi = dm.ydpi;

これらの値を計算に使用します。結局のところ、画面の真の値を使用し、あなたが述べたようにパーセンテージを使用するのが本当に最善です。これがほとんどのOpenGLアプリでも同様に行われると思います(私が間違っている場合は誰かが私を訂正します)。グラフィックエンジンを使用する寸前のこのようなアプリはおそらく同じように動作するはずです。

于 2012-04-17T14:05:36.567 に答える
0

レイアウトの重みを試してください。ここに良い説明があります。

http://www.chess-ix.com/2012/01/17/the-use-of-layout_weight-with-android-layouts/

于 2012-04-10T14:11:54.920 に答える