update一下,下面方法现在来看很low,其实最简单的是直接自定义一个drawable

=============================================================

android上大部分时候阴影是不符合产品需求的,就比如我们就要求实现一个类似ios的圆形图片的阴影???

cardview阴影就挺好,可是他喵了个咪的,不符合需求啊

那么该怎么实现类似cardview或者类似ios上面的阴影效果呢?

暂时只跟踪了cardview和floatingActionButton的实现

1、cardview是通过setCardElevation来设置阴影的,通过跟踪代码可以发现cardview最终会调用RenderNode进行底层实现,要跟底层实现可以去找android framework层的代码,当然我们只是为了简单的实现一个阴影效果,所以暂不讨论其底层具体实现

2、FloatingActionButton,通过跟踪代码可以发现它是通过drawable来实现的,很明显,对我们来说通过drawable来实现更简单一些

实现的过程中还遇到一个问题,就是在4.4之前以及5.0之后drawable中的gradient显示差距巨大,这是android的一个bug,具体参考 https://issuetracker.google.com/issues/37007621

不过在将drawable改为代码实现后会稍微好一些,所以也算一个解决方案吧

具体实现思路:

通过构建gradientdrawable实现阴影渐变,然后将drawable转为bitmap(由于后面要做高斯模糊,所以尽量构建一个小一点的bitmap),再将bitmap进行高斯模糊,之后将bitmap作为背景设置到一个imageview上,当然这样实现的一个弊端就是我们需要在要展示的图片后面再放一张图片-。-,没什么好思路,感觉这样子实现最好的方式就是自定义一个viewgroup,预留空间然后构建阴影,再或者设置一个backgournd一个foreground,然后将foreground进行一定比例的缩放?或许可以,之后再研究吧,也不是什么主要功能

不过有一个好处,只要是gradient可以画出来的渐变,我们都可以做成阴影,可以自定义颜色自定义形状

附4.4以及5.0以上效果图

4.4

5.0+

在android上模拟ios阴影效果相关推荐

  1. 在android上移植ios

    2019独角兽企业重金招聘Python工程师标准>>> Android与IOS是最受人们欢迎的两大移动平台,Android与IOS之争是一个永久的话题.接下来笔者就结合自己的知识和网 ...

  2. linux pc98模拟器,在android上模拟PC98方法

    国庆期间偶然在动漫社的服务器上拖到某e社经典老物,可惜身边木有笔记本.. 不过好在是PC98版,在手机上模拟还是可以的. 本人使用的模拟器是np2(NekoProject2) for Android: ...

  3. Android之——模拟实现检测心率变化的应用实例

    Android之--模拟实现检测心率变化的应用实例 当今,市面上有了一些可以通过Android应用来检测病人心率,血压,体温,等等,一系列方便人们日常生活的Android手机应用.那么,这些实用的手机 ...

  4. android 聊天气泡_android聊天气泡在android中构建ios风格的聊天

    android 聊天气泡 重点 (Top highlight) In this post, we'll explore how to do two things: 1) create live cha ...

  5. 百度推出开发者搜索 Beta;雷军手机使用时长曝光;苹果败诉,电脑上可以模拟 iOS 系统 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  6. Chrome浏览器免插件更改Ua模拟iOS和Android等教程,附QQ和微信

    Chrome浏览器免插件更改Ua模拟iOS和Android等教程,附QQ和微信 .. http://www.zuanke8.com/thread-1798313-1-1.html (出处: 赚客吧) ...

  7. android 模拟来电广播,在Android模拟器上模拟来电

    最近项目要做一个控制来电显示的Android 应用 需要在Emulator上模拟来电 效果 方法如下: 1.单个电话 打开命令行cmd,输入telnet 回车. 然后输入 o localhost 55 ...

  8. iOS Android 上传代码库+持续集成+单元测试

    背景 本文将介绍如何把iOS & Android项目分别上传到CocoaPods和Jitpack,并用Travis CI做持续集成,codecov做代码单元测试覆盖率的报告展示. 上传代码 创 ...

  9. Android手机teams,在iOS和Android上自定义Microsoft Teams体验的三种最佳方法

    以下是您可以在iOS和Android上自定义Microsoft Teams应用程序以使其成为自己的三种方法 1. 开启黑暗模式,以便iOS和Android上的小组中的消息和其他内容更易于理解和阅读 2 ...

最新文章

  1. 用户组修改工具samusrgrp
  2. python123程序作业答案说句心里话_作业 -- 几道简单的Python题
  3. 王道考研 计算机网络18 私有IP地址 网络地址转发NAT 路由器 路由表 路由转发
  4. C++输入一个字符串,去掉这个字符串中出现次数最少的字符 例如: 输入:abcabbc 输出:bbb
  5. Eclipse 插件用法:Eclipse 利用 Amateras UML 生成 Java 类图、时序图和 UML 类图
  6. nginx配置一个简单的php网站遇到的问题
  7. win32开发(创建子窗口)
  8. 北京国际大数据交易所成立,采用区块链技术分离数据所有权
  9. 中心点 unity_32-Unity入门学习11「UI锚点与自适应」
  10. 简单的Java代码实现斗地主
  11. 前端特效-HTML+CSS - 图片悬浮效果
  12. Windowsxp系统无法安装新字体
  13. nacos配置中心提示com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exceptio
  14. 如何让自己的收入翻了十倍
  15. 《微机原理及应用》 试题
  16. Java设计考试系统
  17. oracle rac vip什么用,Oracle VIP说明
  18. 台式机win10关闭fn热键_Win10系统怎么禁用f1-f12快捷键
  19. RISC-V指令集架构介绍及国内外厂商介绍
  20. 支付宝快捷注册万里汇WorldFirst个人账号教程!

热门文章

  1. jQuery点击按钮新增dom
  2. shell脚本1例 自动安装httpd
  3. 【金猿产品展】Wyn Enterprise——嵌入式商业智能软件,让数据分析无处不在
  4. 深度学习中的优化函数optimizer SGD Adam AdaGrad RMSProp
  5. Xmind 8 pro 软件破解版(经济条件允许的情况下,请支持正版)
  6. 发动机、发电机、电动机、电机、马达傻傻分不清?一张图恍然大悟!
  7. 公有链规模可扩展性的讨论 PPT
  8. 慕课-初识 学习ts笔记
  9. 元宇宙黑马来袭 海姆达尔Heimdallr 开启链游新玩法
  10. 这个五一,我尝试了断网生活