我的淺談android適配

因爲Android設備衆多繁雜,尺寸各有不一,因此android的適配也必將任重道遠。
綜合了一下目前主要的android適配方案主要有如下幾種:android

1.建立不一樣的資源文件

建立不一樣的資源文件 values-1920x1080,values-1280x720等等git

2.百分比佈局支持庫

使用谷歌正式提供的百分比佈局支持庫(percent-support-lib),它提供兩種佈局github

PercentFrameLayout,PercentRelativeLayout

支持的屬性有:網絡

layout_widthPercent
layout_heightPercent 
layout_marginPercent
layout_marginLeftPercent
layout_marginTopPercent
layout_marginRightPercent 
layout_marginBottomPercent
layout_marginStartPercent
layout_marginEndPercent

例子:PercentRelativeLayoutapp

<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentRelativeLayout佈局

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true">

<TextView
    android:id="@+id/row_one_item_one"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_alignParentTop="true"
    android:background="#7700ff00"
    android:text="w:70%,h:20%"
    android:gravity="center"
    app:layout_heightPercent="20%"
    app:layout_widthPercent="70%"/>
      
<TextView
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_below="@id/row_two_item_one"
    android:background="#770000ff"
    android:gravity="center"
    android:text="width:100%,height:10%"
    app:layout_heightPercent="10%"
    app:layout_widthPercent="100%"/>

</android.support.percent.PercentRelativeLayout>code

可是百分比庫仍是存在一些問題:xml

  1. 當使用圖片時,沒法設置寬高的比例圖片

    好比咱們的圖片寬高是200*100的,咱們在使用過程當中咱們設置寬高爲20%、10%,這樣會形成圖片的比例失調。爲何呢?由於20%參考的是屏幕的寬度,而10%參考的是屏幕的高度。

    2.很難使用百分比定義一個正方形的控件utf-8

    好比,我如今界面的右下角有一個FloatingActionButton,我但願其寬度和高度都爲屏幕寬度的10%,很難作到。

    3.一個控件的margin四個方向值一致

    有些時候,我設置margin,我但願四邊的邊距一致的,可是若是目前設置5%,會形成,上下爲高度的5%,左右邊距爲寬度的5%。

    綜合上述這些問題,能夠發現目前的percent-support-lib並不能徹底知足咱們的需求,

3.Android AutoLayout適配方式

一款第三方的支持庫
AutoLayout所用單位px:這裏的px並不是是Google不建議使用的px,在內部會進行轉化處理。
支持的屬性:
layout_width
layout_height
layout_margin(left,top,right,bottom)
pading(left,top,right,bottom)
textSize
maxWidth, minWidth, maxHeight, minHeight
目前還在完善支持的佈局和view。
詳細的配置和使用詳見https://github.com/hongyangAndroid/AndroidAutoLayout


綜上分析

從程序的穩定適用性我的以爲仍是經過建立不一樣的資源文件來適配比較穩妥。---以上我的根據網絡資源總結整理,經驗不足,歡迎多多指教---

相關文章
相關標籤/搜索