package com.duguang.baseanimation.ui.splash;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import com.duguang.baseanimation.R;
import com.duguang.baseanimation.ui.anim.Rotate3DAnimation;
import com.duguang.baseanimation.ui.base.BaseActivity;
public class Rotate3DActivity extends BaseActivity implements OnClickListener {
private int mCenterX = 160;
private int mCenterY = 0;
//A
private ViewGroup layoutFront;
//C
private ViewGroup layoutBack;
//B
private ViewGroup layoutRight;
//D
private ViewGroup layoutLeft;
private Rotate3DAnimation leftAnimation;
private Rotate3DAnimation rightAnimation;
private int toLeft = 0;
private int toRight = 1;
private Button bt_leftBtn;
private Button bt_rightBtn;
private ViewGroup layout_viewGroup;
@Override
public void setView() {
setContentView(R.layout.activity_splash_rotate_3d);
}
@Override
public void initView() {
layoutFront = (ViewGroup) findViewById(R.id.layout_viewGroup);
bt_leftBtn = (Button) findViewById(R.id.bt_leftBtn);
bt_rightBtn = (Button) findViewById(R.id.bt_rightBtn);
bt_leftBtn.setEnabled(true);
bt_rightBtn.setEnabled(true);
}
@Override
public void setListener() {
bt_leftBtn.setOnClickListener(this);
bt_rightBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bt_leftBtn:
frontMoveHandle(toRight);
v.setEnabled(false);
break;
case R.id.bt_rightBtn:
frontMoveHandle(toLeft);
v.setEnabled(false);
break;
default:
break;
}
}
//左旋转
public void initFirst(){
leftAnimation = new Rotate3DAnimation(0, -90, 0.0f, 0.0f, mCenterX, mCenterY);
rightAnimation = new Rotate3DAnimation(90, 0, 0.0f, 0.0f, mCenterX, mCenterY);
leftAnimation.setFillAfter(true);
leftAnimation.setDuration(1000);
rightAnimation.setFillAfter(true);
rightAnimation.setDuration(1000);
}
//右旋转
public void initSecond(){
leftAnimation = new Rotate3DAnimation(-90, 0, 0.0f, 0.0f, mCenterX, mCenterY);
rightAnimation = new Rotate3DAnimation(0, 90, 0.0f, 0.0f, mCenterX, mCenterY);
leftAnimation.setFillAfter(true);
leftAnimation.setDuration(1000);
rightAnimation.setFillAfter(true);
rightAnimation.setDuration(1000);
}
//B面转到A面所在位置
public void B2A(Rotate3DAnimation rightAnimation){
setContentView(R.layout.layout_right);
layoutRight = (ViewGroup)findViewById(R.id.layout_right);
layoutRight.startAnimation(rightAnimation);
Button leftBtn = (Button)findViewById(R.id.right_leftBtn);
Button rightBtn = (Button)findViewById(R.id.right_rightBtn);
leftBtn.setEnabled(true); rightBtn.setEnabled(true);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
rightMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
rightMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//D面转到A面所在位置
public void D2A(Rotate3DAnimation leftAnimation){
setContentView(R.layout.layout_left);
layoutLeft = (ViewGroup)findViewById(R.id.layout_left);
layoutLeft.startAnimation(leftAnimation);
Button leftBtn = (Button)findViewById(R.id.left_leftBtn);
Button rightBtn = (Button)findViewById(R.id.left_rightBtn);
leftBtn.setEnabled(true); rightBtn.setEnabled(true);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
leftMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
leftMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//A面转到D面所在位置
public void A2D(Rotate3DAnimation rightAnimation){
setContentView(R.layout.activity_splash_rotate_3d);
layoutFront = (ViewGroup)findViewById(R.id.layout_viewGroup);
layoutFront.startAnimation(rightAnimation);
Button leftBtn = (Button)findViewById(R.id.bt_leftBtn);
Button rightBtn = (Button)findViewById(R.id.bt_rightBtn);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
frontMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
frontMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//C面转到D面所在位置
public void C2D(Rotate3DAnimation leftAnimation){
setContentView(R.layout.layout_back);
layoutBack = (ViewGroup)findViewById(R.id.layout_back);
layoutBack.startAnimation(leftAnimation);
Button leftBtn = (Button)findViewById(R.id.back_leftBtn);
Button rightBtn = (Button)findViewById(R.id.back_rightBtn);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
backMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
backMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//C面转到B面所在位置
public void C2B(Rotate3DAnimation rightAnimation){
setContentView(R.layout.layout_back);
layoutBack = (ViewGroup)findViewById(R.id.layout_back);
layoutBack.startAnimation(rightAnimation);
Button leftBtn = (Button)findViewById(R.id.back_leftBtn);
Button rightBtn = (Button)findViewById(R.id.back_rightBtn);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
backMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
backMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//A面转到B面所在位置
public void A2B(Rotate3DAnimation leftAnimation){
setContentView(R.layout.activity_splash_rotate_3d);
layoutFront = (ViewGroup)findViewById(R.id.layout_viewGroup);
layoutFront.startAnimation(leftAnimation);
Button leftBtn = (Button)findViewById(R.id.bt_leftBtn);
Button rightBtn = (Button)findViewById(R.id.bt_rightBtn);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
frontMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
frontMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//D面转到C面所在位置
public void D2C(Rotate3DAnimation rightAnimation){
setContentView(R.layout.layout_left);
layoutLeft = (ViewGroup)findViewById(R.id.layout_left);
layoutLeft.startAnimation(rightAnimation);
Button leftBtn = (Button)findViewById(R.id.left_leftBtn);
Button rightBtn = (Button)findViewById(R.id.left_rightBtn);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
leftMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
leftMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//B面转到C面所在位置
public void B2C(Rotate3DAnimation leftAnimation){
setContentView(R.layout.layout_right);
layoutRight = (ViewGroup)findViewById(R.id.layout_right);
layoutRight.startAnimation(leftAnimation);
Button leftBtn = (Button)findViewById(R.id.right_leftBtn);
Button rightBtn = (Button)findViewById(R.id.right_rightBtn);
leftBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
rightMoveHandle(toRight);
v.setEnabled(false);
}
});
rightBtn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
rightMoveHandle(toLeft);
v.setEnabled(false);
}
});
}
//A在正面时
public void frontMoveHandle(int to){
if(to == toLeft){
initFirst();
layoutFront.startAnimation(leftAnimation);
B2A(rightAnimation);
}else if(to == toRight){
initSecond();
layoutFront.startAnimation(rightAnimation);
D2A(leftAnimation);
}
}
//B位于正面时
public void rightMoveHandle(int to){
if(to == toLeft){
initFirst();
layoutRight.startAnimation(leftAnimation);
C2B(rightAnimation);
}else if(to == toRight){
initSecond();
layoutRight.startAnimation(rightAnimation);
A2B(leftAnimation);
}
}
//D位于正面时
public void leftMoveHandle(int to){
if(to == toLeft){
initFirst();
layoutLeft.startAnimation(leftAnimation);
A2D(rightAnimation);
}else if(to == toRight){
initSecond();
layoutLeft.startAnimation(rightAnimation);
C2D(leftAnimation);
}
}
//C位于正面时
public void backMoveHandle(int to){
if(to == toLeft){
initFirst();
layoutBack.startAnimation(leftAnimation);
D2C(rightAnimation);
}else if(to == toRight){
initSecond();
layoutBack.startAnimation(rightAnimation);
B2C(leftAnimation);
}
}
}