项目小结

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

  首先是动画部分。

在首页中 给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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值