相关疑难解决方法(0)

Android - 如何圆形缩放/放大部分图像?

我试图让用户触摸图像,然后基本上一个圆形放大镜将显示将允许用户更好地选择图像上的某个区域.当用户释放触摸时,放大的部分将消失.这用于几个照片编辑应用程序,我正在尝试实现我自己的版本.我下面的代码确实放大了图像视图的圆形部分,但是一旦我松开手指就不会删除或清除缩放.我目前设置一个位图到画布使用canvas = new Canvas(bitMap);然后设置imageview takenPhoto.setImageBitmap(bitMap); 我不知道我是否正确的方式.onTouch代码如下:

zoomPos = new PointF(0,0);
        takenPhoto.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                 int action = event.getAction(); 
                    switch (action) { 
                        case MotionEvent.ACTION_DOWN: 
                            zoomPos.x = event.getX();
                            zoomPos.y = event.getY();
                            matrix.reset();
                            matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
                            shader.setLocalMatrix(matrix);
                            canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
                            takenPhoto.invalidate();
                            break; 
                        case MotionEvent.ACTION_MOVE: 
                            zoomPos.x = event.getX();
                            zoomPos.y = event.getY();
                            matrix.reset();
                            matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
                            canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
                            takenPhoto.invalidate();
                            break; 
                        case MotionEvent.ACTION_UP:   
                            //clear zoom here?

                            break; 
                        case MotionEvent.ACTION_CANCEL: 
                            break; 
                        default: 
                            break; …
Run Code Online (Sandbox Code Playgroud)

android image-zoom touch-event android-imageview android-canvas

22
推荐指数
2
解决办法
1万
查看次数