分享一个可动态变化,多屏适配的ActionBar控件–SuperActionBar

发表于: 乘月网 · 2017-12-1 ·  363 阅读  ·  0 评论 

版权说明 : 《分享一个可动态变化,多屏适配的ActionBar控件–SuperActionBar》于当前CSDN博客乘月网属同一原创,转载请说明出处,谢谢。

这个控件一直在项目中使用,Android自带的ActionBar不太好用,且扩展性也不如咱自己实现的ActionBar。SuperActionBar实现了文本和图片标题的动态切换,满足了一些需要灵活调整标题的需求。当然,还有一个特性–自动适配不同屏幕的设备,其原理参考了一些牛人的适配方案。本文纯属分享性文章,仅作些简单的讲解,代码注释以及使用方法的代码示例,希望SuperActionBar能有幸在大家的项目发挥作用或提供实现思路上的帮助。

预览效果图

SuperActionBar效果图

组织结构

组织结构

下面按照组织结构顺序贴上代码

1.attr属性,attrs.xml

配置一些标题栏的字体大小,颜色,图标以及参考分辨率标准等等属性

2.id标识,ids.xml

给view添加tag标识,以便识别身份(如:id_actionbar_location,验证是否为子标题view,且判断其所处ActionBar位置)以及验证是否缩放过,避免重复缩放(如:is_scale_size_tag,验证是否为已经缩放的view),具体请看UI逻辑代码

3.UI逻辑代码,SuperActionBar.java

UI设计逻辑全部于此编写,概括为标题栏元素的生成,排版和缩放

使用示例

这里直接粘贴预览图实现的代码,activity_main.xml,btn_back_selector.xml,MainActivity.java

建议将Activity的 mActionBar 属性和initActionBar()方法写到封装的BaseActivity中,以便直接使用。
好了,以上为本文的全部内容,又水了一篇。欢迎留言,给出自己的建议,谢谢!文章会不定期更新~

打赏