Android图形显示系统——下层显示4:图层合成下(硬件合成器) 硬件合成器-HwComposer使用3D合成,需要大面积的像素混合计算和大量的内存传输(GPU读写GraphicBuffer所需),对GPU和DDR来说是一个巨大的负担。在GPU/DDR重度使用的场景(比如玩游戏),会造成发热、卡顿等。 为了提升性能,减少功耗,可以将合成这个过程交由另一个芯片完成,减轻GPU负担。进一步,直接让
# Android BlendMode ImageShader
在Android开发中,我们经常需要使用图像渲染来创建一些特效或者美化UI。BlendMode是Android 12中引入的一个新特性,它可以帮助我们更加方便地对图像进行混合和渲染。结合ImageShader,我们可以实现一些炫酷的效果。
## 什么是BlendMode
BlendMode是Android 12中新增的一个类,用
原创
2024-06-02 05:47:49
234阅读
1.介绍:在画布上绘画时使用的算法。在画布上绘制形状或图像时,可以使用不同的算法来混合像素。BlendMode的不同值指定不同的此类算法。每个算法都有两个输入,即源(即正在绘制的图像)和目标(即要合成源图像的图像)。目的地通常被认为是背景。源和目标都有四个颜色通道,红色,绿色,蓝色和alpha通道。这些通常表示为0.0到1.0范围内的数字。算法的输出也具有这四个相同的通道,其值根据源和目标计算。下
目前,地面沉降问题是我国较为常见的环境地质问题,其巨大的破坏力严重影响城市建筑安全和交通轨道运行。围绕地面沉降的防控与治理,是工程地质、环境地质、轨道交通设计等相关技术人员十分关注的领域,而数值模拟技术是评估防控效果的有效工具之一。本次培训课程针对地面沉数值模拟技术,结合不同行业的需求,详细讲解利用processing modflow软件建立地下水-地面沉降数值模型的流程与步骤,同时,选取真实案例
转载
2024-07-12 09:10:11
25阅读
# 实现“BlendMode.COLOR_BURN android”操作的步骤
## 介绍
在Android开发中,我们可以使用图像混合模式(BlendMode)来实现图像的合成效果。其中,BlendMode.COLOR_BURN是一种混合模式,它可以实现颜色加深的效果。本文将介绍如何在Android中使用BlendMode.COLOR_BURN来实现这个效果。
## 实现步骤
| 步骤 |
原创
2023-08-02 09:32:40
288阅读
# 如何在Android 29及以下实现BlendMode
在Android应用开发中,有时你需要使用图像混合模式(BlendMode)来实现更复杂的视觉效果。在Android 29(即Android 10)引入了新的BlendMode API,但对于旧版本的Android(Android 29及以下),我们可以通过其他方式实现类似的效果。在本文中,我们将逐步向您展示如何在Android 29以
MJRefresh 是 OC 语言里面算是一款比较通用的刷新框架了,可以用于 UITableView 和 UICollectionView 的刷新,从而可以很方便的完成下拉刷新和上拉加载更多。而且可定制程度也很高。最近需要在公司的项目上加入一个刷新的特效,而公司项目用的刷新框架是 MJefresh ,所以在完成需求的同时就顺便把 MJRefresh 框架的源码给看了一遍。然后写下这篇文章总结一下。
转载
2024-01-25 19:58:38
85阅读
深入详解 IOS strong 和 weak今天写点深刻的关于内存管理的东西 IOS 采用arc 管理内存 让程序员不在纠结于内存的开辟释放等繁琐的工作让内存管理更加简单 arc 是类似于垃圾回收机制 当一个对象没有一个强引用 指向它的时候 该 对象就会被自动释放 当
转载
2023-09-06 20:26:54
7阅读
远程推送解决了当APP处于终止状态,client与sever断开时的通信困境,APNS是苹果所提供的一套服务。远程推送要求设备必须保持联网状态,若设备处于断网状态,这APNS将为其保留最后一条推送消息,若设备长时间处于断网状态,则将不再为其保留推送消息。一、APNS的推送机制推送机制如下图所示:Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification
转载
2023-06-25 23:19:18
108阅读
1.格式@property (参数1,参数2,...) 类型 名字; eg:
@property(nonatomic,retain) UIWindow *window;
其中参数主要分为三类:
• 读写属性: (readwrite/readonly/setter = /getter = )
• setter语意:(assign/retain/copy)
• 原⼦子性: (atomicit
转载
2024-05-21 06:38:59
46阅读
一、中介者模式中介者,顾名思义,即一个处理各种交互集中化操作的角色。面向对象的设计思想鼓励把行为分散到不同的对象中,但是,这种行为的分散可能在一定程度上增大对象之间的关联,增大了系统的耦合度,为后期的维护和扩展带来不便。中介者模式定义了一个集中的场所,对象间的交互可以在一个中介者对象中集中处理,其他对象不必彼此交互,这样就减少了对象之间的关联。定义:用一个对象来封装一系列对象的交互方式。中介者使得
转载
2024-01-17 10:22:04
72阅读
基本概念@property用于定义属性,将会自动生成getter和setter方法,并生成带 “_” 的成员变量,同时属性提供了一些可能会使用的特性来进行声明,包括assign(vs copy),weak,strong,atomic(vs nonatomic),readwrite,readonly等 @property本质:@property = ivar(实例变量) + getter/sette
转载
2024-07-04 20:00:42
88阅读
简要概述synchronized底层原理 synchronized与可见性JMM关于synchronized的两条语义规定了:线程加锁前:需要将工作内存清空,从而保证了工作区的变量副本都是从主存中获取的最新值。线程解锁前;需要将工作内存的变量副本写回到主存中。大概流程:清空线程的工作内存->在主存中拷贝变量副本到工作内存->执行完毕->将变量副本写回到主存中->释
转载
2024-08-03 14:24:45
28阅读
1 KVO是什么? KVO是Objective-C对观察者模式的一种实现,另外一种是通知机制(notification) KVO提供一种机制,指定一个被观察对象(例如A类),当对象的某个属性(例如A中的字符串name)发生更改时,对象会获得通知,并做出相应的处理。 在MVC设计架构下的项目,KVO机制很适合实现model模型和view视图之间的通讯。 例如:代码中,在模型类A创建属性数据,
转载
2023-07-20 15:26:03
71阅读
目录KVC 简介KVC 的基本使用KVC 对(非对象指针类型的值)的处理KVC 的搜索模式通过 KVC 进行字典与模型的相互转换KVC 与集合类型KVC 的集合运算符KVC 对异常的处理KVC 的其他细节自定义 KVC KVC 简介相关文档Key-Value Coding Programming GuideNSKeyValueCoding.h 代码注释KVC 的概念KVC(Key-Value C
转载
2023-10-05 22:56:27
57阅读
分类(Category)分类的作用:在不改变原来类的内容的基础上,为类增加一些方法。使用注意: 1> 分类只能增加方法,不能增加成员变量2> 分类方法实现中可以访问原来类中声明的成员变量 3> 分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原方法无法使用。 4> 方法调用优先级:分类(最后参与编译的分类优先)-->原类-->父类 分类的写
转载
2023-09-10 18:39:36
131阅读
1.synchronized的三大属性一、原子性:确保线程互斥的访问同步代码
二、可见性:保证共享变量的修改能够及时可见
三、有序性:有效解决重排序的问题从语法上讲,synchronized可以把任何一个非null对象作为“锁”,在HotSpot JVM实现,锁有个专门的名字:对象监视器(Object Monitor)2、synchronized的三种作用作用1.当synchronized作用在实
转载
2023-08-11 21:26:50
101阅读
KVCKVC(key-Value coding) 键值编码,指iOS开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值。不需要调用明确的存取方法,这样就可以在运行时动态访问和修改对象的属性,而不是在编译时确定。KVC的定义都是对NSObject的扩展来实现的(Objective-C中有个显示的NSKeyValueCoding类别名,而Swift没有,也不需要)。所以对于所有
转载
2023-07-31 21:33:21
83阅读
需求一:将字典转换成自己需的对象,对象的属性是字典的key值,直接使用key值获取数据存在两个缺点,一是key值难以记忆,二是直接使用key值Xcode不会有智能提示,很容易导致未知的错误。使用模型时,可以直接通过点语法将需要的数据点出,保证数据准确无误。使用模型的优点还在于存储、传值都比较方便,不容易出错。最主要的是这也符合我们MVC和MVVM的设计模式。 注意:要使用模型就离不开KV
转载
2023-08-12 11:27:28
88阅读
一、weak 基本用法weak 是弱引用,用 weak 来修饰、描述所引用对象的计数器并不会增加,而且 weak 会在引用对象被释放的时候自动置为 nil,这也就避免了野指针访问坏内存而引起奔溃的情况,另外 weak 也可以解决循环引用。拓展:为什么修饰代理使用 weak 而不是用 assign?assign 可用来修饰基本数据类型,也可修饰 OC 的对象,但如果用 assign 修饰对象类型指向
转载
2024-02-04 21:22:10
116阅读