アプリにフォトギャラリーがあります。写真のセットは、ドローアブルフォルダに保存されます。ユーザーが画像をスワイプするときにViewPagerを使用しています。xhdpi、hdpi、mdpiのピクセルとdpsの幅と高さはどれくらいですか?
Androidのドキュメントにpx=dp * dpi / 160 ..と記載されていることは知っていますが、すべての画面サイズに収まるように画像をダウンロードするピクセルはどうあるべきかについて、まだ混乱しています。
すべての画面に完全にフィットすることを保証する 1 つの魔法のサイズはありません。各密度に該当する画面サイズは複数あります。
できるだけ多くのデバイスでレイアウトを適切にスケーリングすることを検討する必要があります。あなたの場合、特定のピクセルサイズに焦点を当てるのではなく、一般的な画面に正しく表示し、あまり一般的でない画面に適切に表示する方法に焦点を当てるべきだと思われます。そうは言っても、私は次のことをします:
ここでダッシュボードを見てみましょう。最初に通常の画面サイズ (市場の 50.1%) の hdpi をターゲットにし、次に通常の画面サイズの xhdpi (25.1%)、次に通常の画面サイズの mdpi (11%) をターゲットとするレイアウトを作成します。これらの値の一般的な画面サイズについては、このページの表 3 を確認してください。画像ビューを使用する可能性が最も高いため、スケール タイプ属性を確認して、画像ビューが表示されていない場合の処理に役立ててください。
余談ですが(後で役立つかもしれません)、密度と生のピクセル値の間でサイズを変換するのが難しい場合は、この計算機を使用してください。
現在のディスプレイの高さと幅を与える次の関数を使用します
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
deviceHeightPix = displaymetrics.heightPixels;
deviceWidthPix = displaymetrics.widthPixels;
これに基づいて、サーバーにデータを渡して相対イメージを取得できます。