Android 开场动画

本文为作者原创,允许转载,不过请在文章开头明显处注明链接和出处!!! 谢谢配合~
作者:stars-one
链接:https://www.cnblogs.com/stars-one/p/7397869.html

本篇大约有1996个字,阅读预计需要2.50分钟


 

呼,忙了两天了这个,找了各种资料,勉勉强强实现我的功能,这个还得改进一下,线程方面的知识没有学到多少,弄了线程画UI有着各种bug,无奈。。就这样跳过先了,哪一天有时间在回来搞一下。

 

正文————

  

要实现开头动画,有两种方法,一种是用xml文件定义,第二种则是用java实现。

xml动画中,有着四种基本的动画,如下图片说明

 

这里写图片描述

可以使用这四种组合出更加高级的xml动画

 

具体请点击这个:XML做动画UI

 

使用xml动画的方法过程:

第一步,首先要在res新建一个anim的文件夹,之后,在里面写xml动画文件,如图

 

 

第二步,加载资源文件

示范代码如下,改一下后面的R.anin.xxx

1
Animation animation=AnimationUtils.loadAnimation(this, R.anim.fade_in);

 第三步,为某个控件指定动画

 

1
first.startAnimation(animation);

 PS:

  1. first是一个ImageView
  2. 这个方法放在线程run()方法里会报错,我对线程不太懂,所以还找不到解决办法

 

除此之外,一般我们都是要给animation添加监听器,定义动画开始前的行为,动画循坏的行为,和动画结束的行为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
AnimationListener animationlistener = new AnimationListener() {//设置动画监听事件
     
    @Override
    public void onAnimationStart(Animation arg0) {//动画开始前
        // TODO Auto-generated method stub
         
    }
     
    @Override
    public void onAnimationRepeat(Animation arg0) {//动画循坏时
        // TODO Auto-generated method stub
         
    }
     
    @Override
    public void onAnimationEnd(Animation arg0) {//动画结束后
        Intent intent = new Intent();
        intent.setClass(StartActivity.this, MainActivity.class);
        StartActivity.this.startActivity(intent);
             
         
    }
}; 

 开头动画一般结束之后都是跳转到app主界面的activity,用Intent意图跳转activity

不要忘了在AndroidMainfest里面声明一个activity

 

1
animation.setAnimationListener(animationlistener);

 之后设置监听器方法,这个不要忘

 

使用java方法实现动画效果:


第一步,new一个动画对象

1
2
AlphaAnimation alphaanimation = new AlphaAnimation(0.0f, 1.0f);
                //透明度从0.0(完全透明)到1.0(完全不透明)

 

 

上述代码就是实现淡入效果的,举一反三,其他的这里便不多说

 

第二步,为对象设置相关属性,

 

1
2
 alphaanimation.setDuration(3000);//设置动画持续时间为3s
alphaanimation.setFillAfter(true);//设置动画结束后保留当前状态

 

 当然不止这两种属性,不过常用的就这两种了,其他的话,百度吧

 第三步,为控件指定动画

 

 

1
first.startAnimation(alphaanimation);

 

 PS:参数就是上述的对象名

 个人使用中遇到的问题:

如果控件的visibility属性为gone的话,动画效果无法显示出来,要将visibility属性改为invisible,这样就行了

 

 

最后,附上参考:自定义控件三部曲

 

posted @   Stars-one  阅读(1298)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示