• 保存到桌面  加入收藏  设为首页
安卓应用

安卓-代码--DialogFragment中加上过渡动画效果

时间:2016-10-18 12:30:39   作者:张艳   来源:胜行天下   阅读:2830   评论:0

DialogFragment 动画 和 Fragment动画(资源)可能不同(设置的方法就不同,直接使用会导致机器重启)
DialogFragment 好像同PopUpWindow动画资源
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        if (getDialog() != null) { //不可少
            getDialog().getWindow().getAttributes().windowAnimations = R.style.CustomDialog;
          //  getDialog().getWindow().setWindowAnimations(R.style.animate_dialog); //
         也可以这样设置附件一:         
        }
        return super.onCreateView(inflater, container, savedInstanceState);
    }

也可以在封装的父类中加上style.xml :

附件二:
TWeen动画(上下、左右、扇形旋转).zip :附件三:
 

另:
 Fragment动画见代码积累
 getFragmentManager().beginTransaction().setCustomAnimations(R.animator.fragment_slide_right_in,R.animator.fragment_slide_left_out,R.animator.fragment_slide_left_in,R.animator.fragment_slide_right_out).replace(R.id.your_fragment,YourFragment.newInstance()).commit()
附件一:
     一、java代码实现
 // 创建一个AnimationSet对象,参数为Boolean型,
      // true表示使用Animation的interpolator,false则是使用自己的
      ImageView animationview = (ImageView) findViewById(R.id.animationview);
      AnimationSet animationSet = new AnimationSet(true);
      /*
       * 透明度设置
       */

      AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
      alphaAnimation.setDuration(1000);
      animationSet.addAnimation(alphaAnimation);
      /*
       * 旋转设置
       */
      RotateAnimation rotateAnimation = new RotateAnimation(
        0, 180, Animation.RELATIVE_TO_SELF, 0.5f,
        Animation.RELATIVE_TO_SELF, 0.5f);
      rotateAnimation.setDuration(1000);
      animationSet.addAnimation(rotateAnimation);
     

      /*
       * 移动设置
       */

      TranslateAnimation translateAnimation = new TranslateAnimation(

        // 移动
        Animation.RELATIVE_TO_SELF, 0f,
        Animation.RELATIVE_TO_SELF, 0.5f,
        Animation.RELATIVE_TO_SELF, 0f,
        Animation.RELATIVE_TO_SELF, 0.5f);
      translateAnimation.setDuration(1000);

      animationSet.addAnimation(translateAnimation);


      /*
       * 缩放设置
       */
      ScaleAnimation scaleAnimation = new ScaleAnimation(0,
        0.1f, 0, 0.1f, Animation.RELATIVE_TO_SELF,
        0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
      scaleAnimation.setDuration(1000);
      //animationSet.addAnimation(scaleAnimation);
      animationview.startAnimation(animationSet);


二、xml实现

在res下新建anim,新建一个Resource type 的Tween Animation.xml

(另见animationresource.xml)
         android:interpolator //空间播放的速度(相当于加速度)

         android:repeatCount="-1" //-1表示不停止

         android:repeatMode="reverse" //restart 表示正向,reverse 表示反向

     ImageView iv= (ImageView) v.findViewById(R.id.img);// 加载动画

  Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(

    context, R.anim.ani);// 使用ImageView显示动画

  iv.startAnimation(hyperspaceJumpAnimation);
附件二:
     一、java代码实现

 // 创建一个AnimationSet对象,参数为Boolean型,
      // true表示使用Animation的interpolator,false则是使用自己的
      ImageView animationview = (ImageView) findViewById(R.id.animationview);
      AnimationSet animationSet = new AnimationSet(true);
     
      /*
       * 透明度设置
       */
      AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
      alphaAnimation.setDuration(1000);
      animationSet.addAnimation(alphaAnimation);
      /*
       * 旋转设置
       */
      RotateAnimation rotateAnimation = new RotateAnimation(
        0, 180, Animation.RELATIVE_TO_SELF, 0.5f,
        Animation.RELATIVE_TO_SELF, 0.5f);
      rotateAnimation.setDuration(1000);
      animationSet.addAnimation(rotateAnimation);
     
      /*
       * 移动设置
       */
      TranslateAnimation translateAnimation = new TranslateAnimation(
        // 移动
        Animation.RELATIVE_TO_SELF, 0f,
        Animation.RELATIVE_TO_SELF, 0.5f,
        Animation.RELATIVE_TO_SELF, 0f,
        Animation.RELATIVE_TO_SELF, 0.5f);
      translateAnimation.setDuration(1000);
      animationSet.addAnimation(translateAnimation);
      /*
       * 缩放设置
       */
      ScaleAnimation scaleAnimation = new ScaleAnimation(0,
        0.1f, 0, 0.1f, Animation.RELATIVE_TO_SELF,
        0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
      scaleAnimation.setDuration(1000);
      //animationSet.addAnimation(scaleAnimation);
      animationview.startAnimation(animationSet);

二、xml实现
在res下新建anim,新建一个Resource type 的Tween Animation.xml
(另见animationresource.xml)
         android:interpolator //空间播放的速度(相当于加速度)
         android:repeatCount="-1"//-1表示不停止
         android:repeatMode="reverse" //restart 表示正向,reverse 表示反向
 
  ImageView iv= (ImageView) v.findViewById(R.id.img); // 加载动画
  Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(context, R.anim.ani);// 使用ImageView显示动画
  iv.startAnimation(hyperspaceJumpAnimation);
 


有任何疑问或技术合作都可联系我

微信:yanfahezuo 【推荐】

QQ:596957738


相关评论

加我微信 596957738 (QQ同号)加我微信     QQ联系:596957738    地址:江苏省南京市浦口区

苏ICP备2023050353号

   

苏公网安备32011402010305号

江节胜的Gitee,江节胜的Git地址