画面の向きに合わせてdimens.xmlの値を正しく読み込むことができません。 スマートフォン用には、私の活動をタブレットや肖像画に表示する必要があります。 ここにいくつかのコードがあります。画面の向きに応じて不適切な値をロードする
値\ dimens.xml
<resources>
<dimen name="drawer_content_padding">0dp</dimen>
</resources>
値-sw600dpランド\のdimens.xml
<resources>
<dimen name="drawer_content_padding">340dp</dimen>
</resources>
活性
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Configuration config = getResources().getConfiguration();
if (config.smallestScreenWidthDp >= 600){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
setContentView(R.layout.activity_main);
}
}
活性XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.orientationtest.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@dimen/drawer_content_padding"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
ホーム画面がポートレートモードの場合、タブレットでアプリケーションを実行していますが、これは私が持っているものです。
ホーム画面がランドスケープモードの場合は、私のAppをタブレットで実行していますが、これは私が持っているものです。
問題:私は私のデバイス上であなたのコードを検討してきた値の両方のケースで340.0
に多分私が正しくあなたを理解していないではないが、あなたはあなたのランドスケープモードである場合に配置する必要がありますタブレット(600を超える)は、値sw600dp-land \ dimens.xmlファイルから値を取り、0にすることはできません。 –
@MishaAkopov私のアクティビティは横向きモードですが、私のアプリ外のタブレットはポートレートまたは風景。両方の風景がきれいですが、私のアプリの外に似顔絵がある場合、アプリは値の次元を読み込まない-sw600dp-land folder – digulino
両方の値を常に340dpにします。 –