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

查了些资料总结了下。

主要是通过

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 8.1 关机充电动画(三)Android模式
  5. 谁说Android的动画不廉价(三)之共享元素动画
  6. android帧动画
  7. android 动画模块分析
  8. Android 自定义充电动画
  9. Android属性动画 Property animation

随机推荐

  1. ADB 使用详细教程——Awesome Adb
  2. Android P 以及之后版本不支持同时从多个
  3. Android(安卓)定位实现(1)
  4. ViewPager实现QQ主界面,ViewFlipper实现某
  5. Android之——杀死用户选中的进程优化
  6. android 开发之旅, should use @string r
  7. Binder 简介
  8. 调用Android自带的联系人选择界面
  9. Xamrin开发安卓笔记(一)
  10. 我想邀请你和我一起学Android