今天准备比赛的时候 遇到了这个问题。

查了些资料总结了下。

主要是通过

android: theme 标签来实现

android: theme="@style/xxx"

那么就需要自己写style风格文件

如下

     <style name="ThemeActivity" mce_bogus="1">        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>        <item name="android:windowNoTitle">true</item>    </style>    <style name="AnimationActivity" mce_bogus="1" parent="@android:style/Animation.Activity">//需要继承自android:style/Animation.Activity     <item name="android:activityOpenEnterAnimation">@anim/anim_enter</item>     <item name="android:activityOpenExitAnimation">@anim/anim_exit</item>    <item name="android:activityCloseEnterAnimation">@anim/back_enter</item>      <item name="android:activityCloseExitAnimation">@anim/back_exit</item>      </style>//这里之所以写成2style个是为了解耦

然后自己写下anim/anim_enteranim/anim_exit 以及amin_back_enter amin_back_enter

===============我是分割线===================

今天同样遇到一个问题

就是用xml写amin时候

我把scale 标签的pivotX 与pivotY

的含义理解错了 实际含义应该是相对物件的X,Y标志位。(0%~100%)

fromXScale[float] fromYScale[float] 为动画起始时,X、Y坐标上相对 pivotX的伸缩尺寸

0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大

物件伸展过程中不会移出物件

toXScale [float]
toYScale[float]
为动画结束时,X、Y坐标上相对 pivotY的伸缩尺寸(参数含义同上)

==============我是分界线====================

关于android anim动画 的越界问题

在动画使用过程中

scale 是不能越界的 只能显示在View本身的范围内

translate可以越界的 但只能在该view的父view的范围内显示超出则不显示 (它标记的x,y是相对于所在view的左上标志点位)

rotate可以越界的 但只能在该view的父view的范围内显示超出则不显示

==============我是分割线====================

animation.setFillAfter(true)方法可以实现动画结束后 图片停止在动画结束的位置[view的实际位置不改变]

从而可以通过动画实现新浪微博消息页上导航的选择切换效果

/*** 初始化动画*/private void InitImageView() {cursor = (ImageView) findViewById(R.id.cursor);bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a).getWidth();// 获取图片宽度DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);int screenW = dm.widthPixels;// 获取分辨率宽度offset = (screenW / 3 - bmpW) / 2;// 计算偏移量Matrix matrix = new Matrix();matrix.postTranslate(offset, 0);cursor.setImageMatrix(matrix);// 设置动画初始位置 只改变显示位置 不影响初始位置(既不影响top|left坐标点)}

 int one = offset * 2 + bmpW;
// 页卡1 -> 页卡2 偏移量   
int two = one * 2;
// 页卡1 -> 页卡3 偏移量  
 @Override   public void onPageSelected(int arg0) {   Animation animation = null;   switch (arg0) {   case 0:   if (currIndex == 1) {   animation = new TranslateAnimation(one, 0, 0, 0);   } else if (currIndex == 2) {   animation = new TranslateAnimation(two, 0, 0, 0);   }   break;   case 1:   if (currIndex == 0) {   animation = new TranslateAnimation(offset, one, 0, 0);   } else if (currIndex == 2) {   animation = new TranslateAnimation(two, one, 0, 0);   }   break;   case 2:   if (currIndex == 0) {   animation = new TranslateAnimation(offset, two, 0, 0);   } else if (currIndex == 1) {   animation = new TranslateAnimation(one, two, 0, 0);   }   break;   }   currIndex = arg0;   animation.setFillAfter(true);
// True:图片停在动画结束位置
   animation.setDuration(300);   cursor.startAnimation(animation);   }   @Override   public void onPageScrolled(int arg0, float arg1, int arg2) {   }   @Override   public void onPageScrollStateChanged(int arg0) {   }   

http://www.eoeandroid.com/code/2012/0322/994_2.html

更多相关文章

  1. Android(安卓)属性动画简介
  2. Android(安卓)Activity界面切换添加动画特效
  3. Android基于TranslateAnimation的动画动态菜单
  4. Android常用的技术点
  5. Android(安卓)8.1 关机充电动画(三)Android模式
  6. Android(安卓)Animation学习笔记
  7. 谁说Android的动画不廉价(三)之共享元素动画
  8. android帧动画
  9. Android(安卓)自定义充电动画

随机推荐

  1. 吴恩达 deeplearning.ai 经典总结:28 张精
  2. 是时候抛弃print了,开始体验下logging的强
  3. 这一年我都做了些什么?
  4. WIN10从休眠中唤醒,总是要点“登录”才能
  5. Python排序傻傻分不清?一文看透sorted与so
  6. 用Python实现跳一跳自动跳跃。
  7. 2018年原创精选文章汇总
  8. OpenCV:目标跟踪。
  9. 自然语言处理中句子相似度计算的几种方法
  10. 4、输入、输出重定向、管道符、Vim编辑器