Android原生桌面顶部和底部的渐变阴影去除方法
来源:互联网 发布:图片自动播放软件 编辑:程序博客网 时间:2024/06/08 17:52
Android原生的 Launcher ,会在桌面的顶部和底部加一个渐变阴影的效果。如下图:
由于很多桌面都是基于原生桌面进行开发的,所以一些机型的手机上会保留有这个效果。个人猜测Google应该是考虑到状态栏的小图标是白色的,如果壁纸是浅色或白色,那么状态栏的小图标会很难认清,甚至看不见,所以加了这个一个效果。
最近项目里接到一个需求,需要把这个渐变阴影的效果去掉。
根据以往一些小小的经验,首先推测了下这个效果的实现方法。可以想到两种:
1、在桌面的xml布局文件中使用<gradient>标签,用了 android:startColor 和 android:endColor 属性来实现渐变效果。
2、可能Launcher在加载壁纸时,对壁纸图片进行了处理,直接在图片中加入了阴影效果。
带着自己的推测,按照关键信息去查看源码。只能说,理想很丰满。没有用到以上两种方式。只能从代码清单入手,挑一些关键字重点浏览,搜索设置背景的相关方法。功夫不负有心人,
在 packages/apps/Launcher3/src/com/android/launcher3/Launcher.java 中找到了相关方法 setWorkspaceBackground():
5.x 系统下:
private void setWorkspaceBackground(boolean workspace) { mLauncherView.setBackground(workspace ? mWorkspaceBackgroundDrawable : null);}6.0和7.0系统下的实现略有不同,但是换汤不换药:
private void setWorkspaceBackground(int background) { switch (background) { case WORKSPACE_BACKGROUND_TRANSPARENT: getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); break; case WORKSPACE_BACKGROUND_BLACK: getWindow().setBackgroundDrawable(null); break; default: // 实现阴影的代码 getWindow().setBackgroundDrawable(mWorkspaceBackgroundDrawable); }}渐变效果的实现最终都是在壁纸的基础上,给launcher设置了一个 background 。该方法调用了图片资源: workspace_bg.9.png :
mWorkspaceBackgroundDrawable = getResources().getDrawable(R.drawable.workspace_bg);图片存放在packages/apps/Launcher3/res/ 各分辨率适配的目录下。
去掉阴影可以有两种方法:
1、直接注释掉 setWorkspaceBackground()中设置桌面background 的相关代码就行。
2、要是不嫌麻烦,也可以将 workspace_bg.9.png 替换成全透明的图片。
去掉渐变效果后,就是以下的样子:
那么,问题来了。去掉渐变效果后,由于状态栏和壁纸都是浅色的,会导致状态栏的图标可视性(用户体验)较差。所以相应的可能就需要进行状态栏颜色的修改。请见《android修改状态栏颜色的实现》
1 0
- Android原生桌面顶部和底部的渐变阴影去除方法
- android listview/ScrollView 去除顶部下拉时的半月形阴影和上下滑动顶部和底部的虚化
- android listview/ScrollView 去除顶部下拉时的半月形阴影和上下滑动顶部和底部的虚化
- 去除Android系统中桌面顶部阴影
- android去掉滑动到顶部和底部的阴影
- android去掉滑动到顶部和底部的阴影
- 去除listView和recyclerview滑动到顶部和底部边界的阴影
- Android istview顶部的或底部的渐变色怎么去除?
- UINaviagtionBar 去除底部阴影的方法
- ListView和GridView滑动到顶部和底部时出现的阴影消除方法
- ListView和GridView滑动到顶部和底部时出现的阴影消除方法 .
- ListView和GridView,ViewPager滑动到顶部和底部时出现的阴影消除方法
- ListView滑动到顶部和底部时出现的阴影消除方法
- 解决Android 中ScrollView拉到尽头时再拉的顶部和底部的阴影效果
- Android ListView 去除边缘阴影、选中色、拖动、底部上拉、顶部下拉背景色等
- android TextView去除顶部和底部留白
- android listview或者ScrollView 去除顶部下拉时的蓝底或者上下滑动顶部和底部的虚化
- [Android 5.0 笔记] Actionbar底部阴影去除
- GMON 思维导图三 - 网络安全监控
- RDD Join 性能调优
- iOS 数组集合操作(交集,并集,差集,子集)
- 乔布斯经典语录
- LeetCode 360. Sort Transformed Array
- Android原生桌面顶部和底部的渐变阴影去除方法
- FTP 传输文件后台代码
- iOS 蓝牙4.0开发
- labview中关于dynamic dispatch和static dispatch的使用范围
- 详解Windows下Eclipse CDT 配置C-C++ 编译环境
- Cannot subclass final class class com.sun.proxy.$Proxy64
- 使用CXF发布和调用webservice之HelloWorld入门
- java数据类型
- python-os.path记录