在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Dimezis: Android上类似iOS动态模糊的视图源码下载

Dimezis: Android上类似iOS动态模糊的视图源码下载

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:1.22M
  • 下载次数:0
  • 浏览次数:105
  • 发布时间:2024-02-15
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
Dimezis: Android上类似iOS动态模糊的视图源码下载
BlurView
Dynamic iOS-like blur for Android Views. Includes library and small example project.
BlurView可以作为常规的FrameLayout使用。它能够对其底层内容进行模糊处理,并将其绘制为其子视图的背景。BlurView的子视图不会被模糊处理。当视图层次结构发生更改时(调用draw()),BlurView会重新绘制其模糊内容。它会保留位置和大小的变化,包括视图动画和属性动画。
如何使用
<eightbitlab.com.blurview.BlurView
 android:id="@ id/blurView"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 app:blurOverlayColor="@color/colorOverlay">

<!--Any child View here, TabLayout for example. This View will NOT be blurred -->

</eightbitlab.com.blurview.BlurView>
float radius = 20f;

View decorView = getWindow().getDecorView();
// ViewGroup you want to start blur from. Choose root as close to BlurView in hierarchy as possible.
ViewGroup rootView = (ViewGroup) decorView.findViewById(android.R.id.content);

// Optional:
// Set drawable to draw in the beginning of each blurred frame.
// Can be used in case your layout has a lot of transparent space and your content
// gets a too low alpha value after blur is applied.
Drawable windowBackground = decorView.getBackground();

blurView.setupWith(rootView, new RenderScriptBlur(this)) // or RenderEffectBlur
 .setFrameClearDrawable(windowBackground) // Optional
 .setBlurRadius(radius)

请尽量选择与BlurView在层次结构中最接近的根布局。这将极大地减少创建视图层次结构快照所需的工作量。
SurfaceView、TextureView、VideoView、MapFragment、GLSurfaceView等
由于它们仅使用硬件加速的Canvas,BlurView目前不支持对这些目标进行模糊处理,而BlurView依赖于软件Canvas来对要模糊处理的视图进行快照。
Gradle
由于JCenter即将关闭,请使用https://jitpack.io/和发布标签作为稳定版本的源。
implementation 'com.github.Dimezis:BlurView:version-2.0.3'
圆角
可以在没有圆角的情况下设置圆角,算法与其他常规视图相同:
创建一个圆角Drawable,并将其设置为背景。
然后设置剪辑,以便BlurView不会绘制在圆角之外
blurView.setOutlineProvider(ViewOutlineProvider.BACKGROUND);
blurView.setClipToOutline(true);
相关线程-#37
为什么要在主线程上进行模糊处理?
因为在其他线程上进行模糊处理会引入1-2帧的延迟。
与其他模糊库相比
BlurView与几乎所有其他库相比的主要优势在于它不会触发冗余重绘。
BlurView从不使自身或层次结构中的其他视图无效,并且只在需要时更新,依赖于对硬件加速画布的位图变异。
它支持屏幕上的多个BlurView而不触发绘制循环。
它在需要特定分配大小的设备上使用了优化的RenderScript Allocations,极大地提高了模糊性能。
它允许选择一个自定义根视图来进行快照,从而减少绘制遍历的数量并提供更大的灵活性。
支持对话框(及对话框背景)的模糊处理
其他库:
🛑 BlurKit - 不断使自身无效
🛑 RealtimeBlurView - 不断使自身无效

【实例截图】
【核心代码】

标签:

实例下载地址

Dimezis: Android上类似iOS动态模糊的视图源码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警