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