当我点击一本书并关闭书籍动画时,我想实现像IReader打开的书动画这样的动画,这是IOS可以做Page Folding Animation,我想在Android中实现。
有人告诉使用相机,但我无法解决,如果有人知道如何在Android中工作,请告诉我该怎么做,我将不胜感激。
这是我的代码:
final CubeView01 cubeView01 = (CubeView01) view.findViewById(R.id.cubeview01); // cover layer
final ScaleView scaleView = (ScaleView) view.findViewById(R.id.scaleview); // content layer
cubeView01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// cover layer scaleY
objectAnimator = ObjectAnimator.ofFloat(cubeView01, "scaleY", 1.0F, cubeView01.getHeightRatio());
objectAnimator.setDuration(duration);
objectAnimator.start();
objectAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
Float value = (Float) animation.getAnimatedValue();
float ratio = (value - 1.0F) / (cubeView01.getHeightRatio() - 1.0F);
ratio = Math.min(ratio, 1.0F);
// cover layer scaleX
cubeView01.setScaleX(value);
cubeView01.rotate(-((int) (80 * ratio)));
float valueX = (cubeView01.getWidthRatio() - 1.0F) * ratio + 1.0F;
float valueY = value;
scaleView.setScaleX(valueX);
scaleView.setScaleY(valueY);
}
});
}
});
/**
* @param degreeY
*/
public void rotate(int degreeY) {
mCamera.save();
mCamera.rotateY(degreeY);
mCamera.getMatrix(mMatrix);
mCamera.restore();
mCamera.save();
postInvalidate();
}
现在我制作覆盖层scaleX,scaleY和rotateY,而内容层scaleX,scaleY。但它并不像ibook那样完美;我不使用翻译,如果你知道如何做得更好,请给我一些建议,谢谢!