首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Android中基于OpenGL的特效

前言 大家都知道,给图片加滤镜加特效,通常是对图像进行矩阵运算。通过颜色矩阵的乘法,我们可以对图像中的元素进行变换。 但是,如果需要对实时变化的图像进行实时处理,就不是每种图像变换的方式都可以用了。...在上一篇中,我们已经展示了Android中,通过OpenGL展示相机预览图片的方法。 这一篇主要展示,如何在预览的图片中,加入一些简单的特效特效概述 ?...QQ20180805-232214-HD.gif 这个特效的详细过程是,点击屏幕时,会在屏幕中间显示一个画中画,然后,画中画慢慢放大,逐渐透明。同时,原始预览图层的颜色不断随机变化。...由于特效既需要形变,也需要颜色变化,我们在gl_Position和gl_FragColor中,都引入了一个变化矩阵。...在画中画的特效中,颜色矩阵接近于一个单位矩阵,只是透明度会渐渐变小。而顶点坐标的矩阵,则会随着特效动画的进程不断变化。x和y值不对增大。 ---- 以上就是一个简单的基于OpenGL的动画特效

2.1K20

android动态拼接生成界面 ,大量界面

2.搭建界面 有了基础数据后,我们要做的就是写一个通用Activity去动态拼装整个界面  我实现的思路是这样的 :将每种类型的控件都单独写成xml,比如有15种类型的控件就写15个xml,根据字段类型判断加载哪种类型的...判断加载完界面  处理界面控件设置默认值,设置点击事件,设置是否可以编辑点击等(因为查看  修改  添加都用一套界面),这一些基本逻辑。 我就直接将初始化布局的地方贴出来,大家看一下。...4.处理点击事件 界面拼接完成后 ,要处理控件里面的点击事件。...; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RadioButton...; import android.widget.RadioGroup; import android.widget.TextView; /** * Created by zlw on 2017/6/

2.2K20

Android界面绘制原理

Android的Activity界面从何处开始绘制 Activity启动之后,灰溜溜的会去跑onCreate,onStart,onResume等生命周期方法,那么从framework里面,让我们看看Activity...checkThread(); mLayoutRequested = true; scheduleTraversals(); } } 到这里,好了,界面绘制从这里开始...这里就是要求界面绘制必须在主线程中进行更新mThread就是主线程,所以如果当前运行的线程不是主线程,那么就直接报这个异常,接下去是mLayoutRequested设置成true,避免在界面又layout...请求的时候又重复收到一次layout请求,然后再进行界面的layout,那不就乱套了,然后就是真正的界面绘制了: void scheduleTraversals() { if (!...final DisplayMetrics packageMetrics = res.getDisplayMetrics(); res.getValue(com.android.internal.R.dimen.config_prefDialogWidth

1.5K10

Android OpenGL ES 实现蓝线挑战特效

抖音的实现效果 打开抖音,搜索 蓝线挑战 特效,点击拍摄,就可以看到如下效果 ?...注意到,该特效有如下特点 预览界面有一根蓝线,均匀得在竖直方向上运动 蓝线的上方,显示的是上一帧的画面 蓝线的下方,显示的是正在预览的画面 随着蓝线的运动,上一帧不断被保留,最终可以得到一副奇奇怪怪的画面...这个特效虽然看着很普通,但结合使用者的创意,可以玩出各种各样的花样,下面就来看看如何实现 先看看笔者实现的效果 实现效果 ?...注意到,实现的效果来看,和抖音的还是比较吻合,除了蓝线的颜色,笔者的蓝线是纯蓝色的(#0000FF),当然,颜色可以任意调整 特效分析 那么问题来了,这样的特效应该如何实现呢 当笔者第一次看到这个特效的时候...,而当需要在相机预览或者播放视频中添加水印/贴纸,则需要先将Oes纹理转化成2D纹理,因为Oes纹理和2D纹理是不能同时使用 保留帧 让当前渲染的纹理保留在一个帧缓存里,而不显示在屏幕上 蓝线挑战这个特效

1.1K30
领券