Android平台手机图片浏览软件的开发实现(15)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

Android平台手机图片浏览软件的开发实现(15)


                    if (r.right < GalleryViewActivity.screenWidth) {
                        super.onScroll(e1, e2, distanceX, distanceY);
                    } else if (left > 0) {
                        super.onScroll(e1, e2, distanceX, distanceY);
                    } else {
                        imageView.postTranslate(-distanceX, -distanceY);
                    }                }

效果图:    
图 4 图片拖动前和拖动后
3.7.3    3D图片浏览设计
(1)    设置倒影
利用Matrix实现图片的反转。
Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0,  height / 2, width, height / 2, matrix, false);
 创建反转后的图片Bitmap对象,图片高是原图的一半。
Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height / 2), Config.ARGB_8888);
创建标准的Bitmap对象,宽和原图一致,高是原图的1.5倍。
 Canvas canvas = new Canvas(bitmapWithReflection);   
 canvas.drawBitmap(originalImage, 0, 0, null);
创建画布对象,将原图画于画布,起点是原点位置。
Paint defaultPaint = new Paint();  
 canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);
 canvas.drawBitmap(reflectionImage, 0, height + reflectionGap,null);
将反转后的图片画到画布中。
LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0×70ffffff, 0×00ffffff,  TileMode.MIRROR);
创建线性渐变LinearGradient 对象。
canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()  + reflectionGap, paint);
画布画出反转图片大小区域,然后把渐变效果加到其中,就出现了图片的倒影效果。
实现代码:
// The reflection bitmap, width is same with original's, height is half of original's.
            Bitmap reflectionBitmap = Bitmap.createBitmap(
                    srcBitmap,
                    0,
                    srcHeight / 2,
                    srcWidth,
                    srcHeight / 2,
                    matrix,
                    false);            
            if (null == reflectionBitmap)
                return null;             (责任编辑:qin)