Android中有四种动画效果:

AlphaAnimation:透明度动画效果

ScaleAnimation:缩放动画效果

TranslateAnimation:位移动画效果

RotateAnimation:旋转动画效果

1.透明动画效果

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

public class MainActivity extends Activity {

	private AlphaAnimation aa;

	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); aa = new AlphaAnimation(1, 0);
aa.setDuration(3000);
// 设置监听事件
aa.setAnimationListener(new AnimationListener() { @Override
public void onAnimationStart(Animation animation) {
Toast.makeText(MainActivity.this, "start", 0).show();
} @Override
public void onAnimationRepeat(Animation animation) {
Toast.makeText(MainActivity.this, "repeat", 0).show();
} @Override
public void onAnimationEnd(Animation animation) {
Toast.makeText(MainActivity.this, "end", 0).show();
}
});
findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
v.startAnimation(aa);
}
}); }
}

通过xml配置文件 完毕该动画效果

创建xml文件:右键res->选择android xml file

创建完毕之后会在res文件夹下生成一个anim文件夹

aa.xml:

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fromAlpha="1"
android:toAlpha="0" > </alpha>

Activity中仅仅须要 声明 AlphaAnimation 并在Button的监听事件中 调用

v.setAnimation (AnimationUtils.loadAnimation(MainActivity.this,R.anim.aa));

效果是一样的。

2. 缩放动画效果

public class MainActivity extends Activity {

	private ScaleAnimation sa;

	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(2000); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
v.startAnimation(sa);
}
});
}
}

通过xml文件:

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromXScale="0"
android:fromYScale="0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1"
android:toYScale="1" > </scale>

3. 位移动画效果

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

public class MainActivity extends Activity {

	private TranslateAnimation ta;

	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ta = new TranslateAnimation(0, 200, 0, 200);
ta.setDuration(2000); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
v.startAnimation(ta);
// v.startAnimation(AnimationUtils.loadAnimation(
// MainActivity.this, R.anim.ta));
}
});
}
}

xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="200"
android:toYDelta="200" > </translate>

4. 旋转动画效果

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

public class MainActivity extends Activity {

	private RotateAnimation ra;

	@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // ra = new RotateAnimation(0, 360);
// ra = new RotateAnimation(0, 360, 50, 150);
ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
ra.setDuration(2000); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
v.startAnimation(ra);
}
});
}
}

动画混合:

AnimationSet

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

public class MainActivity extends Activity {

	AnimationSet as ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); as = new AnimationSet(true);
as.setDuration(2000); AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(2000); TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 200);
ta.setDuration(2000); as.addAnimation(ta);
as.addAnimation(aa); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
v.startAnimation(as);
}
});
}
}

创建Xml文件选择set:

<?xml version="1.0" encoding="utf-8"?

>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="2000"
android:shareInterpolator="true" > <alpha
android:fromAlpha="0"
android:toAlpha="1" /> <translate
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="200"
android:toYDelta="200" /> </set>

Android---63---Android中的动画效果的更多相关文章

  1. 我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计

    要想实现带动画效果的电子温度计,需要以下几个知识点: 1.温度传感器相关知识. 2.ScaleAnimation动画相关知识,来进行水印刻度的缩放效果. 3.android:layout_weight ...

  2. Android利用温度传感器实现带动画效果的电子温度计

    概述 Android利用温度传感器实现带动画效果的电子温度计. 详细 代码下载:http://www.demodashi.com/demo/10631.html 一.准备工作 需要准备一部带有温度传感 ...

  3. Android中的动画效果

    动画的种类 透明动画alphaAnimation 在代码中配置动画: findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickL ...

  4. Android小项目之五 splash动画效果

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  5. 轻松实现Android,iOS的一个手势动画效果

    先来看效果 这是iOS下的效果,android下完全一致.通过do_GestureView组件和do_Animation组件,deviceone能很容易实现复杂的跨平台纯原生动画效果,这个示例就是通过 ...

  6. Android下fragment切换的动画效果

    网上看到的例子,转过来记录一下,学习一下,感谢原作者的辛勤编码,效果非常好 基于Android3.0新增的动画api,效果很赞 共21种动画效果: <item>X轴缩放</item& ...

  7. CSS3中的动画效果记录

    今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...

  8. css3实现的3中loading动画效果

    一.css3中animation动画各种属性详解: animation Value:     [<animation-name> || <animation-duration> ...

  9. Vue中过度动画效果应用

    一.实现动画过渡效果的几种方式 实现动画必须要将要进行动画的元素利用<transition>标签进行包裹 1.利用CSS样式实现过渡效果 <transition name=" ...

随机推荐

  1. Puppet单机实战之Nginx代理Tomcat

    author:JevonWei 版权声明:原创作品 blog:http://119.23.52.191/ --- 构建实战之Nginx代理Tomcat [root@node1 modules]# mk ...

  2. 【bzoj1336/1337/2823】[Balkan2002]Alien最小圆覆盖 随机增量法

    题目描述 给出N个点,让你画一个最小的包含所有点的圆. 输入 先给出点的个数N,2<=N<=100000,再给出坐标Xi,Yi.(-10000.0<=xi,yi<=10000. ...

  3. linux系统——fread()与read()函数族区别

    fread与read区别: 1,fread是带缓冲的,read不带缓冲. 2,fopen是标准c里定义的,open是POSIX中定义的. 3,fread可以读一个结构.read在linux/unix中 ...

  4. 【HDU 1711 Number Sequence】

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission ...

  5. chilitags使用心得

    chilitags是一个相当好的CV方向的开源项目,不过在github上follow的人不多, 国内也基本没有这方面的消息,前几天同事给我安利了这个,使用了一下和看了源码以后..我觉得这个东西以后一定 ...

  6. vue父组件向子组件传递数据

    父组件 <template> <div id="app"> <v-header :childseller="fatherseller&quo ...

  7. nginx进行项目域名配置时提示Job for nginx.service failed

    ps aux | grep nginx /bin/systemctl stop nginx.service /bin/systemctl start nginx.service /bin/system ...

  8. 【BZOJ4504&&Hihocoder1046】K个串(主席树,堆)

    题意:一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)询问第k大的和是多少 1 <= n <= 100000, 1 < ...

  9. python 集合比较(交集、并集,差集)

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  10. AC日记——集合位置 洛谷 P1491

    集合位置 思路: 次短路: 先走一遍最短路: 记录最短路径,然后依次删边走最短路: 最短的长度就是次短路: 来,上代码: #include <queue> #include <cma ...