关于AutoLayout适配的问题,及解决办法

开始

本篇博客主要是记录一下,关于AutoLayout一个适配问题的解决办法。

怎么使用AutoLayout?

关于AutoLayout怎么使用,这个博客地址写的很详细(AutoLayout作者的博客)
http://blog.csdn.net/lmj623565791/article/details/49990941

适配时的问题

先说下问题:
我是按分辨率 768*1280去开发的
选择的布局视图是这个:
关于AutoLayout适配的问题,及解决办法_第1张图片
清单文件里是这么配置的:

        data
            android:name="design_width"
            android:value="768" />
        data
            android:name="design_height"
            android:value="1280" />

正常我再添加个依赖,再继承一下AutoLayoutActivity,然后我就可以在xml布局里面随便的用px了,后面它就会帮我适配各种屏幕。
结果出现了一个这样的问题:
我在布局里面是这么写的


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/background"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="768px"
        android:layout_height="1140px">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@mipmap/loading" />
    LinearLayout>
LinearLayout>

在Android stuido上预览效果是这样的
关于AutoLayout适配的问题,及解决办法_第2张图片

运行到手机上是这样的:
关于AutoLayout适配的问题,及解决办法_第3张图片
运行到手机上后下面多了一块白的。
我的天呐!!不是说好的代码预览和运行在手机上的效果是一样的吗? 这种情况我该怎么开发啊?怎么才能让它和我开发时候的预览效果一样呢?

问题分析

不着急咱先说说这种情况的问题:
我们在android studio上预览效果的情况下 所说的1280的高度其实是包括 状态栏 和下面按钮栏的。好我们看下图就明白了
关于AutoLayout适配的问题,及解决办法_第4张图片

然后运行在手机上,AutoLayout认为的1280是这样的(看下图)
关于AutoLayout适配的问题,及解决办法_第5张图片

区别大家应该都清楚了,就是在android studio上预览时候的1280高度是包括状态栏和按钮栏的,然而到手机上就不包括了,手机上中间那块就有1280,我们回到最开始的代码


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/background"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="768px"
        android:layout_height="1140px">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@mipmap/loading" />
    LinearLayout>
LinearLayout>

这的中间布局高度我写的是1140px 再加上 状态栏45px 和 按钮栏95px 在android studio预览效果正好是铺满全屏1280px,可是到了真实手机上 中间那块就有1280px 减去1140px 肯定下面就多出一块没有填充满。
不知道我说的是不是很明白?不明白也没关系,知道下面的解决办法就ok啦!

解决办法

预览的时候还用 768 * 1280

关于AutoLayout适配的问题,及解决办法_第6张图片

在AndroidManifest.xml文件中把这个配置改一下就ok了

        data
            android:name="design_width"
            android:value="768" />
        data
            android:name="design_height"
            android:value="1140" />

其他分辨率 可以自己算一下这个值,就是去掉你那个分辨率下的状态栏和按钮栏。

我的问题就这么解决啦,不知道对你用这个办法好不好使,好使的话点个赞评论一下吧亲!!!!
(不知道鸿洋能不能看见这个问题并解决一下就好了)

补充:后来又想到一个问题,就是如果返回和 home按键不是虚拟的,用这个办法效果会不会不一样了呢,经测试 没问题!!!!!

你可能感兴趣的:(android)