先上demo图
实现的原理是这样的:
首先使用matrix.setScale(1F, -1F);方法来实现图片的垂直翻转,这样使用避免了使用旋转变换的复杂计算。
Matrix matrix = new Matrix();
matrix.setScale(1F, -1F);
mRefBitmap = Bitmap.createBitmap(mSrcBitmap, 0, 0,
mSrcBitmap.getWidth(), mSrcBitmap.getHeight(), matrix, true);
在onDraw()中,首先绘制2张图片即原图和倒影图,只是这个时候还没有绘制渐变层
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(mSrcBitmap, 0, 0, null);
canvas.drawBitmap(mRefBitmap, 0, mSrcBitmap.getHeight(), null);