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を定義することをお勧めします. 
    計算方法:
    	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、異なるスクリーンを適切に配置する
  • resディレクトリの下に異なるlayoutフォルダを作成します.たとえば、layout-largeは解像度に基づいてlayout-480 x 800などを作成し、応答するxmlファイルを配置すれば
  • になります.
  • は異なる密度の携帯電話に異なる画像を提供することができます(使用をお勧めします)多くの場合、あなたが作ったアプリケーション、画像が多いと、1セットの図は満足できないに違いありません.低密度表示で大丈夫かもしれませんが、高い密度の携帯電話は小さな
  • を表示します.
  • また、インタフェースのアダプタの大部分もあなたのレイアウトに依存しています.4つのレイアウトを柔軟に使用するには、できるだけ多くのwrapを使用することを学ぶ必要があります.content match_parent dpは、インタフェースの設計を多く分析し、時には仕事の半分の役割を果たすことがあります.