Android画面適合まとめ
長い間、アダプティブはAndroid開発者の通病であり、AndroidのオープンソースはAndroidの多様化を招き、各携帯電話メーカーはAndroidシステムを深くカスタマイズし、自分のニーズに合わせて様々なサイズの携帯電話を開発してきた.これらの様々なサイズの携帯電話は、間違いなく私たち開発者に多くの迷惑をかけているに違いない.いったいどうすればもっと良い適応ができるのだろうか.以下は本人の適応総括であり、欠けているところや間違っているところがあれば、指摘してください.まず基礎概念 を知る.
スクリーンサイズ(screen size):スクリーンの実際のサイズは、スクリーンの対角線の長さで測定されます.ndroidは画面を以下の4種類に分けた:small(小画面)、normal(正常画面)、large(大画面)、extra large(特大画面).
スクリーン密度(Screen Density):実際のスクリーン領域にどれだけの画素があるかは、一般的にdpiで測定されます(インチごとにどれだけの点があるか).medium、highスクリーン密度を決定する装置に比べて、サイズを決定するスクリーン領域lの密度がlowのスクリーンが持つ画素はより少ない.
方向(orientation):スクリーン方向はlandscape(横スクリーン)とportrait(縦スクリーン)に分けられます.
解像度(Resolution):画面上の全実画素数.スクリーンを適切に配置する場合、一般的に解像度に注目せず、スクリーンの大きさと密度に注目します.
密度に関係のないピクセル(Density-independent pixel,dpまたはdip):UIが異なる画面密度に適していることを保証するために、dpを使用してプログラムUIを定義することをお勧めします.
計算方法:
Androidはスクリーン密度をlow,medium,high,extra highの4種類に分けた.各dpiが表す密度:ldpi:120 mdpi:160 hdpi:240 xdpi:320 xdpi:480次の方法で携帯電話の密度を取得できます
2.具体的な適合方法
まずManifestでサポート画面タイプを設定する必要があります
1、適用アイコンの適合:
hdpi 72*72 | ldpi 36*36 | mdpi 48*48 | xdpi 96*96 | xxdpi 120*120
2、異なるスクリーンを適切に配置する resディレクトリの下に異なるlayoutフォルダを作成します.たとえば、layout-largeは解像度に基づいてlayout-480 x 800などを作成し、応答するxmlファイルを配置すれば になります.は異なる密度の携帯電話に異なる画像を提供することができます(使用をお勧めします)多くの場合、あなたが作ったアプリケーション、画像が多いと、1セットの図は満足できないに違いありません.低密度表示で大丈夫かもしれませんが、高い密度の携帯電話は小さな を表示します.また、インタフェースのアダプタの大部分もあなたのレイアウトに依存しています.4つのレイアウトを柔軟に使用するには、できるだけ多くのwrapを使用することを学ぶ必要があります.content match_parent dpは、インタフェースの設計を多く分析し、時には仕事の半分の役割を果たすことがあります.
スクリーンサイズ(screen size):スクリーンの実際のサイズは、スクリーンの対角線の長さで測定されます.ndroidは画面を以下の4種類に分けた:small(小画面)、normal(正常画面)、large(大画面)、extra large(特大画面).
スクリーン密度(Screen Density):実際のスクリーン領域にどれだけの画素があるかは、一般的にdpiで測定されます(インチごとにどれだけの点があるか).medium、highスクリーン密度を決定する装置に比べて、サイズを決定するスクリーン領域lの密度がlowのスクリーンが持つ画素はより少ない.
方向(orientation):スクリーン方向はlandscape(横スクリーン)とportrait(縦スクリーン)に分けられます.
解像度(Resolution):画面上の全実画素数.スクリーンを適切に配置する場合、一般的に解像度に注目せず、スクリーンの大きさと密度に注目します.
密度に関係のないピクセル(Density-independent pixel,dpまたはdip):UIが異なる画面密度に適していることを保証するために、dpを使用してプログラムUIを定義することをお勧めします.
計算方法:
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
Androidはスクリーン密度をlow,medium,high,extra highの4種類に分けた.各dpiが表す密度:ldpi:120 mdpi:160 hdpi:240 xdpi:320 xdpi:480次の方法で携帯電話の密度を取得できます
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // ( )
int height = metric.heightPixels; // ( )
float density = metric.density; // (0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // DPI(120 / 160 / 240)
System.out.println("width:"+width+"
height:"+height+"
:"+density+"
DPI:"+densityDpi);
2.具体的な適合方法
まずManifestでサポート画面タイプを設定する必要があります
<supports-screens
android:smallScreens="true" //
android:normalScreens="true" //
android:largeScreens="true" //
android:xlargeScreens="true" //
android:anyDensity="true" //
”/>
1、適用アイコンの適合:
hdpi 72*72 | ldpi 36*36 | mdpi 48*48 | xdpi 96*96 | xxdpi 120*120
2、異なるスクリーンを適切に配置する