项目小结

来源:互联网 发布:微擎注册站点域名更换 编辑:程序博客网 时间:2024/04/30 14:50

  关于项目中遇到的一些问题,还有一些动画的总结。

  首先是动画部分。

在首页中 给textview 加入了属性动画。使textview可以有翻转的效果。

 动画总共分为三种,第一种,补间动画、这种动画效果,在执行完毕之后会将控件还原到原始状态,不会改变控件的任何属性。

第二种,帧动画,主要用于做成连续的动画效果显示。

第三种,属性动画,这种动画执行完毕之后,会将控件属性改变为当前状态,可以用于翻转,平滑的activity跳转之间的动画效果。

属性动画 让控件翻转效果:代码如下。

ObjectAnimator.ofFloat(city_name//控件
,"rotationY"//要进行的动作。
, 0.0F, 360.0F)//翻转角度
.setDuration(2000)//设置动画的持续时间        .start();
帧动画 首先将要连续播放的图片放入项目中。 在drawable文件中新建xml文件。内容如下。

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false">    <item android:drawable="@mipmap/a" android:duration="200"/>    <item android:drawable="@mipmap/aa" android:duration="200"/>    <item android:drawable="@mipmap/aaa" android:duration="200"/></animation-list>
oneshot为是否循环一次。false为无限次循环
帧动画主要用于加载网络数据时,在数据解析出来之前执行动画。数据加载结束后,将动画关闭。
在java中的代码如下:
//首先将控件初始化。
iv_load = (ImageView)view.findViewById(R.id.image_load);
//图片控件在xml文件中不能使用 src 填充图片,否则会出现动画不动,只显示一张图片的错误。
//给iamgeview设置背景资源文件。city_load中的代码如上
iv_load.setBackgroundResource(R.drawable.city_load);
//通过getBackgroud方法将imageview的图片资源得到。drawable = (AnimationDrawable)iv_load.getBackground();
//开启动画drawable.start();
在关闭动画时先进行判断图片是否在运行
if(drawable.isRunning()){
drawable.stop();
}
如何做布局的翻转效果。
第一种方式是使用fragment切换效果。
  TextFragment fragment=new TextFragment();
  fragment切换方式可以通过
  //设置进入动画。使用的是android自带的方法
  fragment1.setEnterTransition(FragmentTransaction.TRANSIT_ENTER_MASK);
//设置退出动画,同样的方式
  fragment.setExitTransition(~~~);
通过自定义的动画切换
  fragment.setCustomAnimations(R.anim.enter,R.anim.exit,R.anim.pop_enter,R.anim.pop_exit);
R.anim.enter//第一个fragment进入时的动画
<set xmlns:android="http://schemas.android.com/apk/res/android" >    <objectAnimator        android:duration="1000"        android:propertyName="rotationY"        android:valueFrom="180.0"        android:valueTo="360.0"        android:valueType="floatType" />    <objectAnimator        android:duration="1000"        android:propertyName="alpha"        android:valueFrom="0.0"        android:valueTo="1.0"        android:valueType="floatType" /></set>
  
R.anim.exit//第一个fragment退出时的动画
<set xmlns:android="http://schemas.android.com/apk/res/android" >    <objectAnimator        android:duration="1000"        android:propertyName="rotationY"        android:valueFrom="0.0"        android:valueTo="180.0"        android:valueType="floatType" />    <objectAnimator        android:duration="1000"        android:propertyName="alpha"        android:valueFrom="1.0"        android:valueTo="0.0"        android:valueType="floatType" /></set>
R.anim.pop_enter//第二个fragment进入时的动画
<set xmlns:android="http://schemas.android.com/apk/res/android" >    <objectAnimator        android:duration="1000"        android:propertyName="rotationY"        android:valueFrom="180.0"        android:valueTo="0.0"        android:valueType="floatType" />    <objectAnimator        android:duration="1000"        android:propertyName="alpha"        android:valueFrom="0.0"        android:valueTo="1.0"        android:valueType="floatType" /></set>
R.anim.pop_exit
<set xmlns:android="http://schemas.android.com/apk/res/android" >    <objectAnimator        android:duration="1000"        android:propertyName="rotationY"        android:valueFrom="360.0"        android:valueTo="180.0"        android:valueType="floatType" />    <objectAnimator        android:duration="1000"        android:propertyName="alpha"        android:valueFrom="1.0"        android:valueTo="0.0"        android:valueType="floatType" /></set>
  关键:::进行翻转效果使用的都是属性 然而v4包中的fragment不能使用动画 会出现不能识别的动画效果的错误。如果想使用这种动画 需要fragment继承自 app包中 或者将 v4包中的fragmnet转为需要的类型
//开启事物  
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(framlayout,fragment).commit();
不适用属性动画来实现翻转效果下篇接着补充。



0 0