Landscape 모드를 사용하지 못하게 하려면, 아래처럼 Activity에 screenOrientation을 설정하시면 됩니다.
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
그리고 디바이스 density에 따라 레이아웃을 맞추려면, 간단한 레이아웃이 아니라면 디자이너의 도움없이는 제대로 맞춰주기가 힘들 겁니다. 물론 Figma, Zeplign 같은 툴들의 도움을 받을 수는 있지만, 그래도 제대로 커버하려면 density를 꼼꼼하게 따져서 디자인을 해야 합니다. 가끔씩 OPPO 같이 화면 사이즈는 상당히 큰데 mdpi 밖에 안되는 디바이스들도 있고, 암튼 안드로이의 골치거리 중의 하나가 디바이스의 사이즈입니다.