關於AutoLayout適配的問題,及解決辦法

開始

本篇博客主要是記錄一下,關於AutoLayout一個適配問題的解決辦法。

怎麼使用AutoLayout?

關於AutoLayout怎麼使用,這個博客地址寫的很詳細(AutoLayout作者的博客)
http://blog.csdn.net/lmj623565791/article/details/49990941

適配時的問題

先說下問題:
我是按分辨率 768*1280去開發的
選擇的佈局視圖是這個:
這裏寫圖片描述
清單文件裏是這麼配置的:

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

正常我再添加個依賴,再繼承一下AutoLayoutActivity,然後我就可以在xml佈局裏面隨便的用px了,後面它就會幫我適配各種屏幕。
結果出現了一個這樣的問題:
我在佈局裏面是這麼寫的

<?xml version="1.0" encoding="utf-8"?>
<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上預覽效果是這樣的
這裏寫圖片描述

運行到手機上是這樣的:
這裏寫圖片描述
運行到手機上後下面多了一塊白的。
我的天吶!!不是說好的代碼預覽和運行在手機上的效果是一樣的嗎? 這種情況我該怎麼開發啊?怎麼才能讓它和我開發時候的預覽效果一樣呢?

問題分析

不着急咱先說說這種情況的問題:
我們在android studio上預覽效果的情況下 所說的1280的高度其實是包括 狀態欄 和下面按鈕欄的。好我們看下圖就明白了
這裏寫圖片描述

然後運行在手機上,AutoLayout認爲的1280是這樣的(看下圖)
這裏寫圖片描述

區別大家應該都清楚了,就是在android studio上預覽時候的1280高度是包括狀態欄和按鈕欄的,然而到手機上就不包括了,手機上中間那塊就有1280,我們回到最開始的代碼

<?xml version="1.0" encoding="utf-8"?>
<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

這裏寫圖片描述

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

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

其他分辨率 可以自己算一下這個值,就是去掉你那個分辨率下的狀態欄和按鈕欄。

我的問題就這麼解決啦,不知道對你用這個辦法好不好使,好使的話點個贊評論一下吧親!!!!
(不知道鴻洋能不能看見這個問題並解決一下就好了)

補充:後來又想到一個問題,就是如果返回和 home按鍵不是虛擬的,用這個辦法效果會不會不一樣了呢,經測試 沒問題!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章