2017-12-18 11 views
0

1080x1920の電話機(およびそれ以下)で正しく表示されるAndroidスタジオでアプリケーションを開発していますが、私のような携帯電話(s8)ではアプリが台無しになりますすべての画面サイズでアプリのUIを修正する方法を見つけてください。だから、携帯電話の大きさがそれよりも大きい場合でも、アプリの画面サイズを1080x1920に制限する方法があるかどうか疑問に思っていた(画面の最上部にある黒いバーを&の下に置いて) s8と互換性がありません)。あなたはこの効果を達成する方法を知っていますか?携帯電話の解像度に基づいてアプリケーションの画面サイズを制限する

+1

いいえ、画面サイズに関係なくレイアウトを同じにする方法をお読みください。 https://developer.android.com/training/multiscreen/index.html – tyczj

+0

ピクセルを使用しないでください。** dp ** s(および** sp ** s)をテキストとして使用します。 –

+0

@tyczjありがとうございました。答えがコメントにあるので、このスレッドを削除する必要がありますか、私はそれを機能することができるように答えとして投稿することができますか? –

答えて

0

親ビューは、希望のアスペクト比(1080x1920から9x16までのスケール)で正確なサイズに設定できます。このためには、プログラムでビューを呼び出し(またはコードでそれを作成する)必要があるだろうとLayoutParamsで幅と高さをピクセル単位で設定します。あなたは、実際の画面サイズをしたいと思います体重と身長のため

yourView.setLayoutParams(new LayoutParams(width, height)); 

、どのWindowManagerから取得できます。

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
Display display = windowManager.getDefaultDisplay(); 
Point point = new Point(); 
display.getSize(point); 
int x = point.x; 
int y = point.y; 

実際の画面サイズ(ピクセル単位)を保持するxとyを取得します。次に、(9x16のアスペクト比を維持するために)どれを減らすべきかを決定し、上記のように親ViewのLayoutParamsを設定します。あなたの親ビューとして最後に

、あなたのセットのコンテンツの表示:それについてです

setContentView(yourView); 

。希望が役立ちます。

EDIT:あなたはゲームについて言及しているので、私はあなたのSurfaceViewを親ビューとして持っていることを伝えることができます(手順は同じです)。

関連する問題