安卓利用ToolBar控件实现仿QQ顶部渐变色效果

安卓利用Toolbar控件实现仿QQ顶部渐变色效果

前言

前几天用了一周的时间做了一个手机蓝牙同下位机硬件通讯的安卓小软件,但是因为是安卓小白,加上这个小项目是由我个人进行开发,而本人又是不怎么擅长界面美化,但是又不想自己所开发的软件因吃相太丑而太掉面子,所以今天为了能够让软件吃相好看一点就学习并实现了仿QQ顶部渐变色的效果。在这里想做个记录,当然如果能够帮助到有该需求的朋友那就再好不过了。

先上图看下效果吧

安卓利用ToolBar控件实现仿QQ顶部渐变色效果

② 接下来我们要写上面放入的渐变色资源文件(@drawable/background_main”)。在drawable文件夹下创建一个资源文件然后写入下列代码。

③ 然后我们需要把系统分配的ActionBar先给取消掉

安卓利用ToolBar控件实现仿QQ顶部渐变色效果

⑤ 然后当你满心欢喜运行看效果的时候,它展示的效果并不是你所想的。那是因为我们还没有实现将toolbar控件同手机状态栏相融合进行渐变色显示。想要实现同状态栏一起显示渐变色的效果这里还要借助一位github上的大神所封装的包。在这里非常感谢这些给我们这些小白提供帮助的人。这里是传送门,言归正传,这里我们要导入这位大神的包,导入方法如下。

安卓利用ToolBar控件实现仿QQ顶部渐变色效果
导入完之后记得要Sync Now一下。

⑥ 成功加载完之后呢,我们就可以使用这位大神所写的方法对我们的顶部进行渐变色渲染了。代码如下

然后到这里顶部渐变色效果基本就大功告成。

可是光有形而无神是没有什么用的。就像修炼武功一样,光有气势而毫无威力可言的话那将毫无用处。所以我们接下来还要实现ActionBar的菜单功能。

实现ActionBar的菜单功能

① 既是要实现菜单功能,那么首先我们肯定要先要有一个菜单列表,所以我们要先再res文件下创建一个menu文件夹来放我们创建的menu资源文件。代码如下

安卓利用ToolBar控件实现仿QQ顶部渐变色效果

其中涉及到一些矢量图标,如果想要实现的话可以去看我的另一篇博客,Android开发图标适配手机方案 这里详细讲解了如何加入精美的矢量图标。在这里我还要给你们推荐一个图标资源网站阿里巴巴图标库 通过搜索功能应该能满足你的大部分图标需求。

② 然后接下来就要重写三个函数来加载菜单、显示菜单图标以及菜单点击事件。代码如下

    //加载菜单    @Override    public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_content, menu);return super.onCreateOptionsMenu(menu);    }    //菜单显示图标    @Override    public boolean onMenuOpened(int featureId, Menu menu) {if (menu != null) {    if (menu.getClass().getSimpleName().equalsIgnoreCase("MenuBuilder")) { try {Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);method.setAccessible(true);method.invoke(menu, true); } catch (Exception e) {e.printStackTrace(); }    }}return super.onMenuOpened(featureId, menu);    }    //菜单选项点击事件    @Override    public boolean onOptionsItemSelected(@NonNull MenuItem item) {来源:〆懒羊羊、
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月9日
下一篇 2020年3月9日

相关推荐