0
私はstackoverflowで見つかったいくつかの答えを読んだことがありますが、見つかったものはうまくいきませんでした。xmlから寸法を読み取る
私は以下の寸法を持っています(肖像ボタンの高さは幅1+ 2、幅3 + 4)。
私はちょうど私がonConfigurationChanged上書きボタンサイズが縦私のコードで
<dimen name="button_height_portrait">180dp</dimen>
<dimen name="button_width_portrait">180dp</dimen>
<dimen name="button_height_landscape">60dp</dimen>
<dimen name="button_width_landscape">60dp</dimen>
よりも風景の中に小さくなりたい:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (mScreenOrientation == Configuration.ORIENTATION_PORTRAIT) {
if (mButton != null) {
Integer ButtonWidthPortrait = getResources().getDimensionPixelSize(R.dimen.button_width_portrait);
Integer ButtonHeightPortrait = getResources().getDimensionPixelSize(R.dimen.button_height_portrait);
mButton.setWidth(ButtonWidthPortrait);
mButton.setHeight(ButtonHeightPortrait);
}
}
else if (mScreenOrientation == Configuration.ORIENTATION_LANDSCAPE) {
if (mButton!= null) {
Integer ButtonWidthLandscape = getResources().getDimensionPixelSize(R.dimen.button_width_landscape);
Integer ButtonHeightLandscape = getResources().getDimensionPixelSize(R.dimen.button_height_landscape);
mButton.setWidth(ButtonWidthLandscape);
mButton.setHeight(ButtonHeightLandscape);
}
}
}
結果はボタンが同じに見えることです正確にサイズ。
int dimenHeightPortrait = (int) (getResources().getDimension(R.dimen.start_button_height_portrait)/getResources().getDisplayMetrics().density)
など..しかし、同じ結果: は、私はまた、次元を取得しようとしました。私は基本メソッドでmScreenOrientationを更新
はonConfigurationChanged:
<resources>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="nav_header_vertical_spacing">16dp</dimen>
<dimen name="nav_header_height">160dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="star_text_size">26sp</dimen>
<dimen name="toast_save_text_size">34sp</dimen>
<dimen name="toast_image_height">50dp</dimen>
<dimen name="toast_image_width">50dp</dimen>
<dimen name="space_between_touch_views">10dp</dimen>
<dimen name="button_moretext_size">20sp</dimen>
<dimen name="button_get_text_size">20sp</dimen>
<dimen name="key_corner_radius">3dp</dimen>
<dimen name="key_top_inset">3dp</dimen>
<dimen name="key_bottom_inset">3dp</dimen>
<dimen name="key_right_inset">2.5dp</dimen>
<dimen name="key_left_inset">2.5dp</dimen>
<dimen name="title_text_size">11sp</dimen>
<dimen name="button_height_portrait">180dp</dimen>
<dimen name="button_width_portrait">180dp</dimen>
<dimen name="button_height_landscape">60dp</dimen>
<dimen name="button_width_landscape">60dp</dimen>
</resources>
申し訳ありませんが、私は基本的にそれを更新します。この情報で質問を編集します。 if(getResources()。getConfiguration()。orientation == Configuration.ORIENTATION_PORTRAIT){ mScreenOrientation = Configuration.ORIENTATION_PORTRAIT; } else if(getResources()。getConfiguration()。orientation == Configuration.ORIENTATION_LANDSCAPE){ mScreenOrientation = Configuration.ORIENTATION_LANDSCAPE; } –
これを回答してみませんか? – peter
それは答えではないからです。私はすでに質問を投稿する前にmScreenOrientationを更新しました。私はmScreenOrientationを更新したことをここに書きませんでした。 –