- 浏览: 24133 次
- 性别:
- 来自: 成都
最新评论
文章列表
概述
在计算机图形学领域,Alpha合成(英语:alpha compositing)是一种将图像与背景结合的过程,结合后可以产生部分透明或全透明的视觉效果。
渲染图像时,通常会将目标图像中的多个子像素单独渲染,最后再把多张子元素的图片合成为单独的图像。
PorterDuffMode的命名是对Thomas Porter 和 Tom Duff 工作的致敬,这个概念在他们 1984 年题为“合成数字图像”的开创性论文中提出。在这篇论文中,描述了 12 个合成运算符,它们控制如何计算由源(要渲染的图形对象)与目标(渲染目标的内容)组成的颜色结果。
因为 Porter 和 D ...
MeasureSpec
- 博客分类:
- 2D Graphic
MeasureSpec和LayoutParams的对应关系
当View采用固定宽/高的时候,不管父容器的MeasureSpec是什么,View的MeasureSpec都是精确模式并且其大小遵循Layoutparams中的大小。
当View的宽/高是match_parent时,如果父容器的模式是精准模式,那 ...
PerformMeasure
- 博客分类:
- 2D Graphic
概述
总体流程
private void performMeasure(int childWidthMeasureSpec, int childHeightMeasureSpec) {
if (mView == null) {
return;
}
Trace.traceBegin(Trace.TRACE_TAG_VIEW, "measure");
try {
mView.measure(childWidthMeasu ...
WindowManager对Window进行管理,包括了window添加、更新和删除的操作,最终都是交由WMS来进行处理的。窗口的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS 处理部分。Window分为三大类,分别是应用程序窗口、子窗口、系统窗口,对于不同类型的窗口添加过程会有所不同,但是WMS对于这三大类的窗口基本是“一 视同仁”的。
1、系统窗口statusbar的添加过程 ① 添加入口Statusbar::addStatusBarWindow
private void addStatusBarWindow() {
...
private final WindowManager mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
// 2
mWindowManager.addView(mNavigationView, createLayoutParams(gravity));
// 3
private static WindowManager.LayoutParams createLayoutParams(int gravity) {
WindowManager. ...
原码、反码、补码
计算机在底层存储数据的时候,一律存储的是 “二进制的补码形式”
其中正数的原码 = 反码 = 补码
一个负数的表示是:负数的绝对值取原码,再取反码,再加一,最后出现的就是这个负数在内存中的表示的二进制数值。
比如-9在内存中的二进制值为1 1 1 1 0 1 1 1
位运算
工厂模式的核心作用就是通过一个工厂类隐藏对象实例的创建。典型的应用是一个父类多个子类。
通过伴生对象创建静态工厂方法
interface Computer {
val cpu: String
companion object Factory {
operator fun invoke(type: Type): Computer {
return when (type) {
Type.PC -> PC()
Type.Server -> ...
案例:计价员拿到采购单之后根据采购单物品名称和数量计算总价,采购员根据采购单名称和数量采购。采购单看作采购物集合,不同操作人员对采购单进行不同处理。
包含访问者和被访问元素两个主要组成。被访问元素通常有不同的类型,不同访问者可对它们进行不同访问操作。
被访问元素通常不单独存在,存储在一个集合中,集合被称为“对象结构”,访问者遍历对象结构对存储的元素逐个操作。
抽象访问者:为对象结构中每一个具体元素声明一个访问操作,从这个操作名称或参数类型可以清楚知道需要访问的具体元素的类型
//抽象访问者
abstract class Department { ...
简单工厂模式
简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础。
定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建实例通常都具有共同的父类。简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法模式,它属于类创建型模式。
//抽象产品角色
abstract class Product {
//所有产品类的公共业务方法
public void methodSame() {
}
//声明抽象业务方法
public abstract voi ...