android 图片的倒影

来源:互联网 发布:淘宝店铺关闭后保证金 编辑:程序博客网 时间:2024/04/29 04:19

简介:

图片倒影的基本的思路:
 1、 从源图片上面一部分截取下来作为倒影的素材
 2、将源图片和倒影拼接成为一张完整的图片
3、在图片的倒影的部分绘制渐变的倒影的效果

源码:

   public Bitmap createReflectionImg(Bitmap bitmap){        //倒影上下的分割线的长度        final int reflectionGap = 0;        int w=bitmap.getWidth();        int h=bitmap.getHeight();        Matrix matrix=new Matrix();//        设置上下旋转        matrix.preScale(1,-1);//        创建一个图片 截图了source img 的下方的 1/2的        Bitmap reflectionImage=Bitmap.createBitmap(bitmap,0,h/2,w,h/2,matrix,false);//    创建一张倒影的基础图片  注意下面的图片的高  =h(原图的高)+h/2(倒影图片的高)        Bitmap bitmapWithReflection=Bitmap.createBitmap(w,(h+h/2), Bitmap.Config.ARGB_8888);        Canvas canvas=new Canvas(bitmapWithReflection);        canvas.drawBitmap(bitmap,0,0,null);        Paint defalutPaint=new Paint();//        canvas.drawRect(0,h,w,h+reflectionGap,defalutPaint);//        绘制倒影图片        canvas.drawBitmap(reflectionImage,0,h+reflectionGap,null);//        绘制倒影图片的渐变        Paint paint=new Paint();        LinearGradient shade=new LinearGradient(0,bitmap.getHeight(),0,bitmapWithReflection.getHeight()+reflectionGap,0x70ffffff,                0x00ffffff, Shader.TileMode.CLAMP);        paint.setShader(shade);// 参考 http://lipeng88213.iteye.com/blog/1189452        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));        canvas.drawRect(0,h,w,bitmapWithReflection.getHeight()+reflectionGap,paint);        return  bitmapWithReflection;    }

倒影的效果图:

当我们注释掉 标志位1 的渐变的代码,效果图如下:


参考:

 http://www.cnblogs.com/qsl568/archive/2012/03/16/2400383.html


原创粉丝点击