Androidの断片化の画面適応

Androidの断片化の画面適応

現在、Androidシステムのオープン性により、さまざまなメーカーのさまざまなAndroidバージョン、解像度、モデル、その他のデバイスが市場に出回っています。私たちの開発では、断片化は間違いなくブレインストーミングの問題です。Androidシステムの断片化、Androidモデルの画面サイズの断片化、Androidの画面解像度の断片化。市場にはさまざまなAndroid携帯の主流の画面サイズがあり、画面サイズの問題が解決されたとしても、さまざまな解像度がまばゆいばかりです。試験生が投げかけた適応の問題に直面し、心臓、肝臓、肺が震えました。今日は、画面適応の解決手順について説明します。

1.画面適応のソリューションは次のとおりです。

「レイアウト」マッチング:相対レイアウト(RelativeLayout)を使用し、絶対レイアウト(AbsoluteLayout)を無効にします。画面の構成に従って、対応するUIレイアウトとサイズ修飾子をロードします。

「レイアウトコンポーネント」のマッチング:「wrap_content」、「match_parent」、「weight」を使用して、ビューコンポーネントの幅と高さを制御します

「画像リソース」マッチング:自動ストレッチビットマップを使用:9パッチの画像タイプ

2. Android画面の適応に関するいくつかの用語の意味:

画面サイズ:つまり、私たちが通常特定の携帯電話と呼ぶのは数インチの画面です。たとえば、HTC one Vこの携帯電話は3.7インチです。ここでのインチはインチ(インチ)を指し、国際舞台で使用される単位です。 1インチ= 2.54cm、3.7インチは画面の対角線の長さを指します。

画面の解像度:画面の幅と高さのピクセル数を指します。たとえば、HTC oneVは480 * 800です。

画面密度: HTC one Vなどの1インチあたりのピクセル数は、252ピクセル/インチです。

px:ピクセル。表示画面は多くの光点で構成されており、各光点はピクセルです。これらの光点は非常に小さくて密度が高いので、考えてみてください。上記の3.7インチの携帯電話では、水平方向に480個、垂直方向に800個の光点があるため、表示されるテキストや画像は非常にきれいです。繊細で滑らか。

ppi:画面密度と同じ意味です。フルネームは1インチあたりのピクセル数です。これはプロの名前です。

dpi: 1インチあたりのドット数、1インチあたりのドット数。電子ディスプレイの分野では、PPIと同じ意味です。この省略形は、印刷する場合にのみ意味があります。印刷フィールドにPPIの名前はなく、DPIのみです。これは、プリンターが1インチあたり数ピクセルを印刷することを意味します。同じピクセル幅と高さで、dpiが大きいほど、印刷パターンは小さくなります。

dip:またはdp、これは画面に依存しないピクセルと呼ばれるAndroid開発に固有の測定値であり、特定の長さやピクセルポイントを表すものではなく、この値は特定の画面密度の携帯電話にのみ変換されます。特定のピクセル値。そうして初めて、それは実際的な意味を持つことになります。次に、具体的な変換について説明します。

Androidプロジェクトのresディレクトリは通常私たち自身の作成によって追加されます。6つのディレクトリがあります。つまり、drawble drawble-ldpi drawble-mdpi drawble-hdpi drawble-xhdpi drawble-xxhdpi、これには特別なdrawbleディレクトリは含まれていません(たとえば、drawlbe-land-hdpiは、水平方向の高解像度の画像を意味します。これらのディレクトリの長さに関係なく、小さなルールに従って照合されます。私たちの目標は、個人からルールを見つけて、に適用することです。全体)。

3.画面サイズ、解像度、ピクセル密度の関係

ピクセル密度=平方根(水平ピクセル×水平ピクセル+垂直ピクセル×垂直ピクセル)/画面サイズ

4.コントロールの画面サイズと画面密度を適応させる問題を解決するための手順。

パーセンテージ適応方法、手順は次のとおりです。

1.特定の解像度に基づいて、すべての解像度に対応
するピクセル番号のリストを生成します。2。生成されたピクセル番号リストをresディレクトリの対応する値ファイルに保存します。3。
指定された設計図に従ってサイズを見つけますUIデザイナによるピクセル数に対応する単位で、コントロールに設定します

ステップ1:特定の解像度に基づいて、すべての解像度に対応するピクセル数のリストを生成します

ここで、320x480の解像度をベンチマークとして使用します。
画面の幅を320の部分に
分割し、値をx1〜x320にし、画面の高さを480の部分に分割し、値をy1〜y480に
して、リストを生成します。以下に示すように、解像度に対応するピクセル数の。

lay_x.xml(宽)
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="x1">1.0px</dimen>
<dimen name="x2">2.0px</dimen>
<dimen name="x3">3.0px</dimen>
<dimen name="x4">4.0px</dimen>
<dimen name="x5">5.0px</dimen>
<dimen name="x6">6.0px</dimen>
<dimen name="x7">7.0px</dimen>
<dimen name="x8">8.0px</dimen>
<dimen name="x9">9.0px</dimen>
<dimen name="x10">10.0px</dimen>
<dimen name="x300">300.0px</dimen>
<dimen name="x301">301.0px</dimen>
<dimen name="x302">302.0px</dimen>
<dimen name="x303">303.0px</dimen>
<dimen name="x304">304.0px</dimen>
<dimen name="x305">305.0px</dimen>
<dimen name="x306">306.0px</dimen>
<dimen name="x307">307.0px</dimen>
<dimen name="x308">308.0px</dimen>
<dimen name="x309">309.0px</dimen>
<dimen name="x310">310.0px</dimen>
<dimen name="x311">311.0px</dimen>
<dimen name="x312">312.0px</dimen>
<dimen name="x313">313.0px</dimen>
<dimen name="x314">314.0px</dimen>
<dimen name="x315">315.0px</dimen>
<dimen name="x316">316.0px</dimen>
<dimen name="x317">317.0px</dimen>
<dimen name="x318">318.0px</dimen>
<dimen name="x319">319.0px</dimen>
<dimen name="x320">320px</dimen>
</resources>
lay_y.xml(高)

<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="y1">1.0px</dimen>
<dimen name="y2">2.0px</dimen>
<dimen name="y3">3.0px</dimen>
<dimen name="y4">4.0px</dimen>
...
<dimen name="y480">480px</dimen>
</resources>

ベンチマークを見つけたら、他の解像度を完成させます。次に、1080x1920の解像度を例として取り上げます。

ベンチマークは320x480、1080 / 320 = 3.375px、1920/480 = 4pxであるため、対応するファイルは次のようになります。

lay_x.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="x1">3.375px</dimen>
<dimen name="x2">6.65px</dimen>
<dimen name="x3">10.125px</dimen>
...
<dimen name="x320">1080px</dimen>
</resources>
lay_y.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="y1">4px</dimen>
<dimen name="y2">8px</dimen>
<dimen name="y3">12px</dimen>
<dimen name="y4">16px</dimen>
...
<dimen name="y480">1920px</dimen>
</resources>

ステップ2:生成されたピクセル番号リストを対応するリソースファイルに配置します。
生成されたピクセル番号リスト(lay_x.xmlおよびlay_y.xml)は、resディレクトリの対応する値ファイルに保存されます(幅と高さに注意してください)以下に示すように)、対応する必要があります:
resディレクトリ内の対応する値ファイル

ステップ3:UIデザイナーによって与えられた特定の解像度の設計図のサイズに従って、ピクセル数に対応する単位を見つけて、次に
示すようにコントロールに設定します。

<FrameLayout >
 
    <Button
        android:layout_gravity="center"
        android:gravity="center"
        android:text="@string/hello_world"
        android:layout_width="@dimen/x160"
        android:layout_height="@dimen/y160"/>
 
</FrameLayout>

結論
上記の適応方法を使用すると、90%の適応を実行できるはずですが、その欠点は明らかです
。pxは実際には長さの測定単位として使用されるため、dpを単位として使用すると異なります。グーグルが要求する測定の

これがこのソリューションを使用するための基礎であるため、すべての解像度を可能な限り含める必要があります。特定の解像度が欠落している場合、画面の適応は完了しません。

解像度が高すぎるピクセル記述xmlファイルは、ソフトウェアパッケージのサイズを大きくし、メンテナンスの難しさを増します

「画像リソース」の一致

エッセンス:画像リソースが異なる画面密度で同じピクセル効果を表示するようにする

方法:バックアップビットマップ(画面サイズに合う画像リソース)を提供します

Androidはさまざまな画面密度のデバイスで実行できるため、提供するビットマップリソースは、常にさまざまな密度の要件を満たす必要があります。

密度タイプ 解像度(px)を表します システム密度(dpi)
低密度(ldpi) 240x320 120
中密度(mdpi) 320x480 160
高密度(hdpi) 480x800 240
超高密度(xhdpi) 720x1280 320
超超高密度(xxhdpi) 1080x1920 480

ステップ1:次のサイズ範囲に従って、各濃度に対応する画像を生成します。

たとえば、xhdpiデバイス用に200x200 pxサイズの画像を生成する場合、対応する比率に従って、hdpi、mdpi、およびldpiデバイス用に150x150、100x100、および75x75サイズの画像を生成する必要があります。

つまり、解像度のセット=ビットマップリソースのセット(これはもちろんUiデザイナーによって作成されます)

ステップ2:生成された画像ファイルをres /の下の対応するサブディレクトリ(mdpi、hdpi、xhdpi、xxhdpi)に配置すると、システムはアプリケーションを実行しているデバイスの画面密度に応じて適切な画像を自動的に選択します

ステップ3:@ drawable / idを参照することにより、システムは対応する画面の画面密度(dpi)に従って適切なビットマップを自動的に選択できます。
注:
9枚の画像または複数の解像度を必要としない画像の場合は、ドローアブルフォルダに配置してください。対応する解像度の画像は、適切なフォルダに正しく配置する必要があります。そうしないと、画像のストレッチなどの問題が発生します。

知らないうちに、ほぼ同じです。今日お話しします。フォローアップで経験と経験を共有し続けます。最後に、Android画面の適応の問題をすばやく発見して解決することをお勧めします。ポータルをクリックして、優れたテストについて学習します。興味がある場合は、すぐに公式グループを公式グループに追加できます:214483489

Youceの最新の開発については、「ポータル」をクリックしてください。
ポータル:https://newtest.21kunpeng.com/home

おすすめ

転載: blog.csdn.net/weixin_46033259/article/details/103630009