Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从xml中读取维度_Java_Android_Dimensions_Readxml - Fatal编程技术网

Java 从xml中读取维度

Java 从xml中读取维度,java,android,dimensions,readxml,Java,Android,Dimensions,Readxml,我已经阅读并尝试了我在stackoverflow中找到的一些答案,但我找到的那些都不起作用 我有以下尺寸(1+2表示纵向按钮的高度\宽度,3+4表示横向) 我只希望横向按钮的大小小于纵向按钮的大小 <dimen name="button_height_portrait">180dp</dimen> <dimen name="button_width_portrait">180dp</dimen> <dimen name="button_hei

我已经阅读并尝试了我在stackoverflow中找到的一些答案,但我找到的那些都不起作用

我有以下尺寸(1+2表示纵向按钮的高度\宽度,3+4表示横向)

我只希望横向按钮的大小小于纵向按钮的大小

<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>
结果是按钮看起来大小完全相同。 我还尝试获取维度:

int dimenHeightPortrait = (int) (getResources().getDimension(R.dimen.start_button_height_portrait) / getResources().getDisplayMetrics().density)
等等。。但结果是一样的

我在配置更改的基本方法中更新mScreenOrientation:

    @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);
            }
        }
    }
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
    mScreenOrientation = Configuration.ORIENTATION_PORTRAIT;
}
else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
    mScreenOrientation = Configuration.ORIENTATION_LANDSCAPE;
}
这是我的完整dimens文件:

<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>

16dp
16dp
16dp
160dp
16dp
26便士
34便士
50dp
50dp
10dp
20便士
20便士
3dp
3dp
3dp
2.5dp
2.5dp
11便士
180dp
180dp
60dp
60dp
成功

我不知道为什么setWidth和setHeight不起作用,但这是可行的(因此,如果有人也遇到了这个问题,那么只需将setWidth和setHeight的两行替换为下一行,并对肖像进行相同的操作):


对不起,忘了提了,但我在基地里更新了。我将用此信息编辑问题。。if(getResources().getConfiguration().orientation==Configuration.orientation\u-trait){mScreenOrientation=Configuration.orientation\u-trait;}否则if(getResources().getConfiguration().orientation==Configuration.orientation\u-trait){mScreenOrientation=Configuration.ORIENTATION\u scape;}为什么不回答这个问题?因为这不是答案。在我发布问题之前,我已经更新了mScreenOrientation。我只是没有在这里写我更新了mScreenOrientation.posted(在问题的末尾)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.width = ButtonWidthLandscape;
params.height = ButtonHeightLandscape;
mButton.setLayoutParams(params);