`

Android百分比布局Percent支持库

阅读更多
虽然有很多的布局可以在 Android 应用程序开发的世界供我们使用,但我们总是只用这三种布局:
LinearLayout, RelativeLayout and FrameLayout。

不管怎么说在用 RelativeLayout 和 FrameLayout 的时候总有一些问题,因为你不能设置子视图的百分比程度。
只有两种方法可能做到
1. 布局在 LinearLayout 里并用它的 layout_weight 布局参数;
2. 在 Java 代码中重写 onMeasure 方法来实现。

举个例子,如果我想在 RelativeLayout 里放一个简单的红色矩形,它是在顶部,并且距离左边的 5% 的位置,宽度为屏幕的25%。我们的代码可以这样写:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="20">
    <View
      android:layout_width="0dp"
      android:layout_height="match_parent"
      android:layout_weight="1"
      />
    <View
      android:layout_width="0dp"
      android:layout_height="100dp"
      android:layout_weight="5"
      android:background="#ff0000" />
  </LinearLayout>
</RelativeLayout>

这是结果:



你会注意到这样的代码应该是非常复杂的。与此同时,这些控件也用视图和 LinearLayout 填充着,我们可以把它们看成是一种浪费。

这将不再是一个问题啦,因为在前几天 Android M 宣布了它的名字:棉花糖(Marshmallow),Android 团队推出了许多支持库去帮助开发者与碎片化的战斗!其中之一就是 百分比支持库(Percent Support Library) ,它具备的能力是用百分比去设置 RelativeLayout 和 FrameLayout 的尺寸!

你好,百分比支持库
这个库是非常容易使用的,因为它就如同 RelativeLayout 和 FrameLayout 一样我们都熟悉,只是有一些额外的功能。

首先,因为百分比支持库是随着 Android Support Library 23 一起的,所请确保你已经在 SDK Manager 中的 Android Support Library 更新了最新的版本。然后在build.gradle文件中添加下面这样的依赖:

compile 'com.android.support:percent:23.0.0'
现在,在使用老的 RelativeLayout 和 FrameLayout 做替换,只需要简单的将他们各自切换到android.support.percent.PercentRelativeLayout和android.support.percent.PercentFrameLayout。这里有9个布局参数可以使用:

layout_widthPercent: 用百分比来表示宽度,比如:app:layout_widthPercent="25%"

layout_heightPercent: 用百分比来表示高度

layout_marginPercent: 用百分比来表示 Margin

其余的是用百分比来表示每个 margin 面
layout_marginLeftPercent
layout_marginRightPercent
layout_marginTopPercent
layout_marginBottomPercent
layout_marginStartPercent
layout_marginEndPercent

用PercentRelativeLayout,上面的代码例子就能这样来写了:
<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">
  <View
    app:layout_widthPercent="25%"
    android:layout_height="100dp"
    app:layout_marginLeftPercent="5%"
    android:background="#ff0000" />
</android.support.percent.PercentRelativeLayout>

这是结果:



你可以看到结果是完全是一致的,而且具有更短更清晰的代码,此外,该空间现在没有填充其他布局,这就让性能达到了更好的程度。

实际上这本应该就是 Android 整体的一部分,但不幸的是,事实并非如此。把它填加到原生Android 的RelativeLayout/FrameLayout 已经太迟了,因为用户用的设备都是老的操作系统版本,不可能支持使用这个功能。所以这就是为什么 Android 团队决定把它作为一个支持库来发布,我支持这个主意。
  • 大小: 20.4 KB
分享到:
评论

相关推荐

    Android 百分比布局库com\android\support\percent

    1. 首先,确保你的项目依赖了percent库。在build.gradle文件中添加依赖: ```groovy dependencies { implementation 'com.android.support:percent:27.1.1' // 或者对应版本 } ``` 2. 在布局XML文件中,使用...

    Android 百分比布局库(percent-support-lib)

    在Android开发中,百分比布局库(percent-support-lib)是一个重要的工具,它使得开发者能够创建适应不同屏幕尺寸的用户界面,而无需针对每个特定分辨率进行硬编码。百分比布局库是Google官方推出的支持库,目的是...

    百分比布局

    百分比布局库是由Google推出的Android Support Library的一部分,它包括了四个主要的类:PercentFrameLayout、PercentRelativeLayout、PercentLinearLayout和PercentLayoutHelper。 1. **PercentFrameLayout**: -...

    Android Support库百分比布局

    在Android开发中,百分比布局(Percent Layout)是Android Support Library的一个重要组成部分,它为开发者提供了在不同尺寸屏幕间保持布局比例一致的能力。这个库特别适用于创建响应式设计,使得应用能在不同分辨率...

    扩展Android百分比布局

    标题提到的“扩展Android百分比布局”是针对Android官方的PercentSupport库的一个增强版本,旨在提供更灵活的布局管理方式。 在官方的PercentSupport库中,开发者可以使用PercentFrameLayout和...

    android百分比布局eclipse可用依赖文件

    总的来说,虽然Eclipse不支持Gradle,但通过手动导入和配置,仍然可以使用像百分比布局这样的Android Studio库。这种方法虽然比直接在Android Studio中使用Gradle构建系统更繁琐,但它为仍在使用Eclipse的开发者提供...

    Android 百分比布局

    百分比布局&lt;android.support.percent.PercentLinearLayout android:id="@+id/tv_solid_number_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft=...

    Android百分比布局Demo

    `android.support.percent.PercentRelativeLayout`是百分比布局的一个具体实现,它是相对布局(RelativeLayout)的一个扩展,添加了对百分比尺寸支持。 百分比布局主要包含两个关键组件:`PercentRelativeLayout`和...

    android百分比布局自动适配

    百分比布局的核心在于`PercentSupportLibrary`,这是一个Android支持库,包含了`PercentRelativeLayout`和`PercentFrameLayout`这两个特殊的布局类。它们继承自`RelativeLayout`和`FrameLayout`,并扩展了对百分比...

    android百分比布局

    1. 使用百分比布局需要添加`com.android.support:percent`库。 2. 百分比布局适用于大部分场景,但可能不适用于所有情况,例如需要精确像素控制的复杂动画或图形。 3. 考虑到兼容性和性能,百分比布局可能不适用于低...

    android 百分比布局,屏幕适配

    为了确保百分比布局在项目中正常工作,需要在build.gradle文件中添加对`percent`库的依赖: ```gradle dependencies { implementation 'com.android.support:percent:27.1.1' // 替换为对应版本号 } ``` 在进行...

    安卓完美屏幕适配 百分比布局库

    百分比布局库是Android Support Library的一部分,因此它可以支持Android 2.1(API级别7)及以上的版本,即使在旧设备上也能运行。 6. **其他适配策略**: - 使用`dp`单位而不是`px`,因为`dp`是密度无关像素,...

    Android屏幕适配之Google百分比布局库的扩展.rar

    Android屏幕适配之Google百分比布局库的扩展在项目中引用 compile 'com.zhy:percent-support-extends:1.1.1'依赖, 主要有三个用于布局的类 ...具体使用看源码

    Android自定义属性百分比布局

    "Android自定义属性百分比布局"就是一种这样的技术,它允许我们在布局中使用子控件相对于父容器的百分比大小,从而实现响应式设计。下面我们将详细探讨这一主题。 首先,`PercentLayout`是Android支持的一种布局...

    Android Support Percent Library

    6. **版本兼容性**: 由于是Android Support库的一部分,该库支持低至API Level 8的设备,使得开发者可以为更广泛的用户群体提供百分比布局功能。 7. **迁移和替换**: 虽然`PercentSupport`库已被弃用,但Android...

    Android百分百布局 percent_layout

    百分比布局的概念源于Android Support Library中的PercentFrameLayout和PercentRelativeLayout,这两个类扩展了Android的原生FrameLayout和RelativeLayout,增加了对子视图尺寸和间距以百分比定义的支持。...

    android百分比适配

    Android从API Level 21(Android 5.0 Lollipop)开始引入了`android.support.percent`库,提供了百分比布局的支持。这个库包含了`PercentRelativeLayout`和`PercentFrameLayout`两个布局容器,它们允许开发者设置子...

Global site tag (gtag.js) - Google Analytics