android 翻页动态效果,Android 实现翻书的动画效果

当你们看到这标题时,多少觉得好牛逼哦,其实我想说的是,这只是一个思路,只是简单的三维空间旋转.为什么要写这个博客呢,最近在面试时,面试官突然问这样的效果怎么实现的,当时我说用动画,他说具体点,我说用RoateAnimation,结果你们也知道.他呵呵一笑,然后说:”你确定”,我说:”我不能确定,您能告诉我吗?”,他说用:”camera”.当时我激动的说:”我知道了”,结果……

下面是实现代码:

自定义的Animation:

public class MyAnimation extends Animation{

int width,height,duration;

Camera camera=new Camera();

public MyAnimation(int width,int height,int duration){

this.width=width;

this.height=height;

this.duration=duration;

}

@Override

public void initialize(int width, int height, int parentWidth, int parentHeight) {

super.initialize(width, height, parentWidth, parentHeight);

//动画持续时间

setDuration(duration);

//设置动画结束时的效果

setFillAfter(true);

setInterpolator(new LinearInterpolator());

}

@Override

protected void applyTransformation(float interpolatedTime, Transformation t) {

super.applyTransformation(interpolatedTime, t);

camera.save();

// camera.translate(100.0f-100.0f*interpolatedTime,150.0f

-150.0f*interpolatedTime,80.0f-80.0f*interpolatedTime);

// camera.rotateX(180 * interpolatedTime);

camera.rotateY(180 * (1+interpolatedTime));

Matrix matrix=t.getMatrix();

camera.getMatrix(matrix);

// matrix.preTranslate(-width,-height);

matrix.postTranslate(width, height);

camera.restore();

}

}

public class MainActivity extends AppCompatActivity {

ImageView imageView;

AnimationDrawable animationDrawable;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

imageView= (ImageView) findViewById(R.id.my_imageview);

imageView.setAnimation(new

MyAnimation(imageView.getWidth(),imageView.getHeight(),6000));

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值