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

每 一个图像像素通过一个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 值,产生的效果是自上向 下由暗
变亮。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值