2017-12-19 13 views
2

私のアプリケーションでは、layoutは特定の外観を持たなければなりませんが、これは多くの異なる画面解像度と密度で実現するのは難しいです。私は、開発者の記事を読み、次layoutファイル作成することによって、多くの異なる画面をサポートするために全力を試してみた:画面の高さに基づいて別のレイアウトディレクトリを選択

layout dirs

しかし、4.7" 電話(1920×1080)と5.8" 携帯電話を(私のS8のような:1080x2220)は、同じlayout-sw360dpディレクトリを使用します。画面の高さの解像度が異なるため、両方の電話機でui要素が正しく表示されません。私はこの問題を解決する方法を知りたいのですが、別のqualifierを使ってアンドロイドのスタジオに適切なlayoutディレクトリを選択することはできますか?私はここで失われ始めている。 heightwidth変数を使用することにより

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
int width=dm.widthPixels; 
int height=dm.heightPixels; 

if (...) { 
    setContentView(R.layout.ex1); 
} else { 
    // ..... 
} 

:すべてのヘルプはさらに深く掘り後

+0

この[質問](https://stackoverflow.com/questions/9476662/how-to-set-android-layout-to-support-all-screen-sizes#29144549)、多くのリソースをご覧くださいそこで参照されています。 –

+0

@CoolGuyCG申し訳ありませんが、私はそのような投稿を読んで、彼らは私をあまり助けません。彼らはあまりにも一般的です。私はどのレイアウトが解像度だけでなく、dpなどに基づいて選択するのかを区別する必要があります。 –

答えて

1

歓迎され、私はあなたがそうのようなDisplayMetricsからの情報に基づいてonCreate()メソッド内で異なるlayoutsを選ぶことができることが判明しましたifステートメント内の条件、私は適切なlayoutファイルを各画面サイズに選択することができました!

関連する問題