我打算在Android上移植iOS(https://github.com/xyfeng/XYOrigami)上的3D手风琴效果。
到目前为止,我有一些非常接近的东西,这是一个折叠视图的“捏合折叠”屏幕截图: http://imageshack.us/photo/my-images/822/3daccordion.png
正如您所看到的,它仍然是两个相对的“面板”之间的空间。 这个过程很简单:
这里是转换矩阵:
private Matrix getFoldingMatrix(int angle, int startFrom,int position) {
int move = (int) (
(mWidth - (Math.cos(angle * Math.PI / 180) * mWidth)) * position
) +1*position; //overlap of 1px the panels and not get space between panels
final Camera camera = new Camera();
final Matrix matrix = new Matrix();
camera.save();
camera.rotateY(angle);
camera.getMatrix(matrix);
if(position%2==1){
move += (int) (
(mWidth - (Math.cos(angle * Math.PI / 180) * mWidth))
) ;
matrix.preTranslate(-mWidth, -mHeight/2);
matrix.postTranslate(startFrom+mWidth-move, mHeight/2);
} else {
matrix.preTranslate(0f, -mHeight/2);
matrix.postTranslate(startFrom-move, mHeight/2);
}
camera.restore();
return matrix;
}
我错了什么?为什么在相对的“面板”之间仍然存在这些空间?