安卓 imageview旋转 回弹 matrix

来源:互联网 发布:只有我知在哪里可以看 编辑:程序博客网 时间:2024/06/11 19:32

#使用image view加载图片后 进行旋转操作在0度和90度附近做一个回弹的效果

float values[] = new float[9];mSuppMatrix.getValues(values);float degree = (float(Math.atan2(values[mSuppMatrix.MSKEW_X], values[mSuppMatrix.MSCALE_X]) * (180 / Math.PI));

显然首先你得通过getValues方法拿到Matrix矩阵值,
然后就是算角度的问题了

private void autoRotate() {        degree = -degree;        if (degree < -180 + radiansOffset && degree > -180) {            postRotation(-180 - degree);        } else if (degree < -90 && degree > -90 - radiansOffset) {            postRotation(-90 - degree);        } else if (degree < -90 + radiansOffset && degree > -90) {            postRotation(-90 - degree);        } else if (degree < 0 && degree > -radiansOffset) {            postRotation(0 - degree);        } else if (degree < radiansOffset && degree > 0) {            postRotation(0 - degree);        } else if (degree < 90 && degree > 90 - radiansOffset) {            postRotation(90 - degree);        } else if (degree < 90 + radiansOffset && degree > 90) {            postRotation(90 - degree);        } else if (degree < 180 && degree > 180 - radiansOffset) {            postRotation(180 - degree);        }    }

radiansOffset为偏移的角度
以上提供参考~_~

0 0
原创粉丝点击