现在的位置: 首页 > 综合 > 正文

android使用 2D 方法实现倒影特效

2018年04月09日 ⁄ 综合 ⁄ 共 1997字 ⁄ 字号 评论关闭


一个图像像素通过一个4

字节整数来展现。最高
位字节用作

alpha通道;换言之用来实现透明
/不透明控制。255
代表完全不透明;0
则代表完全透明。接下来一个字节是red
红色通道;255
代表完全是红色。依次类推接下来两个字节相应的实现绿色和蓝色通道。

 


在你可以对单独的像素进行处理了。通过使用

android
.graphics.Bitmap API
中的
getPixels,可以加载
像素到一个整数数组
中。在本文例子中,你将按照一定规则对每一个像素实现着色。经过这个处理后,所有的像素将被转化为一个范围在0

到255
的字节码。

android.graphics.Bitmap API中的
setPixels则用来加载这个整数数组到一个图像中。最后一步是通过
ImageView
变量
mIV来更新屏幕
。以下是实现这个
染色过程的代码
片段。

 

使用
 2D 方法实现倒影特效


影可以为

 UI 界面
带来立体感,是一个常用的

 UI 特效。下图是一个图片浏览
程序

GridView

,该
 View 的倒影特效为
 UI 界面增色不少。


实现原理


现倒影可以使用

 OpenGL 
 3D 接口方法,也可以用
 2D 的方法模拟


 2D 方法实现倒影需要从两个方面考虑:

1.
影是上、下翻转的图像;

2.
上到下透明度越来越大。


图像翻转的实现



理上讲,图像的翻转实际就是将图像数据
上下行互换。

透明度渐变



现透明度渐变有两种方法,一是使用蒙板;二是直接修改像素数据,修改每个


像素的
 alpha

 
值。


于蒙板法,事先做好一张透明度渐变的图,这就是我们的蒙板,在绘制完图像

之后把蒙板图片绘制上去,这样就产生了透明度渐变的效果


于第二种方法,我们需要首先读出图片的数据,然后修改每个像素的

 alpha 值。下面的代码片段的功能
是逐
行增加

 alpha 值,产生的效果是自上向
下由暗


变亮。

抱歉!评论已关闭.