Android---63---Android中的动画效果
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中的动画效果的更多相关文章
- 我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计
要想实现带动画效果的电子温度计,需要以下几个知识点: 1.温度传感器相关知识. 2.ScaleAnimation动画相关知识,来进行水印刻度的缩放效果. 3.android:layout_weight ...
- Android利用温度传感器实现带动画效果的电子温度计
概述 Android利用温度传感器实现带动画效果的电子温度计. 详细 代码下载:http://www.demodashi.com/demo/10631.html 一.准备工作 需要准备一部带有温度传感 ...
- Android中的动画效果
动画的种类 透明动画alphaAnimation 在代码中配置动画: findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickL ...
- Android小项目之五 splash动画效果
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- 轻松实现Android,iOS的一个手势动画效果
先来看效果 这是iOS下的效果,android下完全一致.通过do_GestureView组件和do_Animation组件,deviceone能很容易实现复杂的跨平台纯原生动画效果,这个示例就是通过 ...
- Android下fragment切换的动画效果
网上看到的例子,转过来记录一下,学习一下,感谢原作者的辛勤编码,效果非常好 基于Android3.0新增的动画api,效果很赞 共21种动画效果: <item>X轴缩放</item& ...
- CSS3中的动画效果记录
今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...
- css3实现的3中loading动画效果
一.css3中animation动画各种属性详解: animation Value: [<animation-name> || <animation-duration> ...
- Vue中过度动画效果应用
一.实现动画过渡效果的几种方式 实现动画必须要将要进行动画的元素利用<transition>标签进行包裹 1.利用CSS样式实现过渡效果 <transition name=" ...
随机推荐
- webpack编译vue出现dev警告
alias配置 vue < 2.1.0 module.exports = { ... resolve: { alias: { 'vue$': 'vue/dist/vue.js' } }, ... ...
- 团子最大家族(clannad)
团子最大家族(clannad) 题目描述 bx2k有许多五颜六色的萌萌哒团子.每个团子有一种颜色. 他决定将m个团子排成一排.为了美观,他要求任何相邻的两个团子不能有相同的颜色. 因为bx2k很懒,因 ...
- LESS CSS使用方法 , CSS也能跟JS一样玩
本文转自 http://blog.csdn.net/xuyonghong1122/article/details/51986472 在使用CSS的时候,总会有这个想法 这个属性值老是重复写好烦 这个 ...
- js 一/二维数组排序
JavaScript中数组排序方法 用到的最多的当然是封装好的sort()方法了 一:sort()方法怎么使用? sort方法并不像我们想的那么容易使用,不是单纯的arr.sort()就行了,需要我们 ...
- Java EE 学习:使用 idea2017 搭建 SSM 框架
需要准备的环境: idea 2017.1 jdk1.8 Maven 3.3.9 请提前将idea与Maven.jdk配置好,本次项目用的都是比较新的 步骤: 一.首先使用idea新建一个Maven w ...
- AssetDatabase.RenameAsset 重命名文件失败
今天想写一段Unity Editor 的代码将在 Project Panel 中选中的所有 Texture 改变 Format,然后重命名 成 xxx.Dither.png 然后自动进行上一篇文章提到 ...
- 美食节(bzoj 2879)
Description CZ市为了欢迎全国各地的同学,特地举办了一场盛大的美食节.作为一个喜欢尝鲜的美食客,小M自然不愿意错过这场盛宴.他很快就尝遍了美食节所有的美食.然而,尝鲜的欲望是难以满足的.尽 ...
- BootLoader的一些知识
在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行.可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境.在嵌入 ...
- LeetCode OJ-- Edit Distance **
https://oj.leetcode.com/problems/edit-distance/ 动态规划,它的小规模问题是:当 word1 word2都比较小的时候,word1变成 word2需要的 ...
- Interview | Why are manhole covers round and not square or rectangular?
Manholes, which interconnect underground sewerage pipes, and serve as a point of entry for cleaning ...