Android Support Percent库介绍

Percent库的设计目标是支持基于百分比的View大小设置。

目前,Percent库仅支持在定制的ViewGroup中设置子View的大小为ViewGroup大小的一个百分比。 此外,子View的宽高也可以设定为一个比例关系。

 

1. 引入Percent库

直接修改build.gradle配置文件,添加该库的引用。例如:

 

也可以通过Android Studio的Project Structure (File → Project Structure,Dependencies)添加引用。

2. Percent库介绍

2.1. 示例代码及效果

先看一段示例代码:

 

运行截图如下:

 

 

2.2. PercentFrameLayout 和 PercentRelativeLayout

分别基于FrameLayout和RelativeLayout的Percent版本,支持子View设置width、height 和margin的百分比大小,也支持子View的长宽比设置。

如果设置了width和height的百分比大小,还可以设置“android:layout_width”和 “android:layout_height”的属性值为“wrap_content”。 此时,如果按百分比大小计算出来的子View大小不能够容纳子View的内容, 那么此时子View会放弃百分比大小,而采用“wrap_content”大小。

2.3. PercentLayoutHelper

如果需要在自己的ViewGroup中也支持基于百分比的大小设置, 那么可以借助PercentLayoutHelper来实现。

具体用法,请参考PercentLayoutHelper文档, 或者参考PercentFrameLayout和PercentRelativeLayout的实现代码。

3. 参考资料

官方文档:

Support库源码阅读和编译:

示例代码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Android Studio实现轮播图的步骤: 1.在app/build.gradle文件中添加依赖项: ```gradle dependencies { implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:support-v4:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:cardview-v7:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.android.support:palette-v7:28.0.0' implementation 'com.android.support:multidex:1.0.3' implementation 'com.android.support:support-vector-drawable:28.0.0' implementation 'com.android.support:animated-vector-drawable:28.0.0' implementation 'com.android.support:customtabs:28.0.0' implementation 'com.android.support:exifinterface:28.0.0' implementation 'com.android.support:preference-v7:28.0.0' implementation 'com.android.support:preference-v14:28.0.0' implementation 'com.android.support:percent:28.0.0' implementation 'com.android.support:mediarouter-v7:28.0.0' implementation 'com.android.support:gridlayout-v7:28.0.0' implementation 'com.android.support:leanback-v17:28.0.0' implementation 'com.android.support:cursoradapter:28.0.0' implementation 'com.android.support:documentfile:28.0.0' implementation 'com.android.support:localbroadcastmanager:28.0.0' implementation 'com.android.support:print:28.0.0' implementation 'com.android.support:slices-builders:28.0.0' implementation 'com.android.support:slices-core:28.0.0' implementation 'com.android.support:slices-view:28.0.0' implementation 'com.android.support:wear:28.0.0' implementation 'com.android.support:wear-watchface:28.0.0' implementation 'com.android.support:wear-remote-interaction:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:cardview-v7:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.android.support:palette-v7:28.0.0' implementation 'com.android.support:multidex:1.0.3' implementation 'com.android.support:support-vector-drawable:28.0.0' implementation 'com.android.support:animated-vector-drawable:28.0.0' implementation 'com.android.support:customtabs:28.0.0' implementation 'com.android.support:exifinterface:28.0.0' implementation 'com.android.support:preference-v7:28.0.0' implementation 'com.android.support:preference-v14:28.0.0' implementation 'com.android.support:percent:28.0.0' implementation 'com.android.support:mediarouter-v7:28.0.0' implementation 'com.android.support:gridlayout-v7:28.0.0' implementation 'com.android.support:leanback-v17:28.0.0' implementation 'com.android.support:cursoradapter:28.0.0' implementation 'com.android.support:documentfile:28.0.0' implementation 'com.android.support:localbroadcastmanager:28.0.0' implementation 'com.android.support:print:28.0.0' implementation 'com.android.support:slices-builders:28.0.0' implementation 'com.android.support:slices-core:28.0.0' implementation 'com.android.support:slices-view:28.0.0' implementation 'com.android.support:wear:28.0.0' implementation 'com.android.support:wear-watchface:28.0.0' implementation 'com.android.support:wear-remote-interaction:28.0.0' implementation 'com.youth.banner:banner:1.4.10' } ``` 2.在布局文件中添加Banner组件: ```xml <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp" app:banner_indicatorGravity="center" app:banner_delay_time="3000" app:banner_is_auto_play="true" app:banner_scroll_time="1000" /> ``` 3.在Activity或Fragment中设置Banner的数据源和图片加载器: ```java // 设置数据源 List<String> images = new ArrayList<>(); images.add("http://img.zcool.cn/community/01c8dc5d6f1e6fa801219c77f8f8c9.jpg"); images.add("http://img.zcool.cn/community/01c8dc5d6f1e6fa801219c77f8f8c9.jpg"); images.add("http://img.zcool.cn/community/01c8dc5d6f1e6fa801219c77f8f8c9.jpg"); banner.setImages(images); // 设置图片加载器 banner.setImageLoader(new GlideImageLoader()); ``` 4.创建图片加载器类: ```java public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } } ``` 5.启动Banner轮播: ```java banner.start(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值