Android利用Animation.RELATIVE_TO_SELF做出个性化的动画

Android开发中,Animation是用来给控件制作效果的。大多数的控件都可以用这个类,这个类包含了4种基本动作,分别为移动,旋转,淡入淡出,缩放。

使用Animation的两种方式:

方式一:在代码中创建、设置以及启动动画(移动TranslateAnimation/旋转RotateAnimation/淡入淡出AlphaAnimation/缩放ScaleAnimation),这样的优点是可以方便调试程序效果;

方式二:在xml中对控件的属性做设置,好处是代码的重用性比较高,缺点是不方便调试。

下面我们重点针对代码创建的方式来举例:

在开始示例之前我们普及两个非常重要的参考标准:Animation.RELATIVE_TO_SELF(相对于自身)、Animation.RELATIVE_TO_PARENT(相对于父控件(容器))。

1、imageView控件由完全透明到完全不透明变化,持续时间为0.2s;

private void toVisibleAnim(View view)
{
    AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
    alphaAnimation.setDuration(200);
    view.startAnimation(alphaAnimation);
}

private void toHideAnim(View view)
{
    ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    scaleAnimation.setDuration(200);
    view.startAnimation(scaleAnimation);
}

3、imageView控件以自身中心为圆心旋转90度,持续时间为0.2s;

 
private void rotateAnim(View view)
{
    view.setVisibility(View.VISIBLE);
    RotateAnimation rotateAnimation = new RotateAnimation(0, 90, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    rotateAnimation.setDuration(200);
    view.startAnimation(rotateAnimation);
}
4、imageView控件从自身位置的最右端开始向左水平滑动了自身的宽度,持续时间为0.2s;
 
private void showScrollAnim(View view) {
    view.setVisibility(View.VISIBLE);
    TranslateAnimation mShowAction = new TranslateAnimation(
            Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF,
            0.0f, Animation.RELATIVE_TO_SELF, 0.0f,
            Animation.RELATIVE_TO_SELF, 0.0f);
    mShowAction.setDuration(200);
    view.startAnimation(mShowAction);
}
5、image控件从自身位置的最左端开始水平向右滑动隐藏动画,持续时间0.2s
 
private void hiddenScrollAnim(LinearLayout view) {
    view.setVisibility(View.GONE);
    TranslateAnimation mHiddenAction = new TranslateAnimation(
            Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,
            1.0f, Animation.RELATIVE_TO_SELF, 0.0f,
            Animation.RELATIVE_TO_SELF, 0.0f);
    mHiddenAction.setDuration(200);
    view.startAnimation(mHiddenAction);
}



转载自:http://www.2cto.com/kf/201502/374920.html
 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值