补间动画和属性动画
来源:互联网 发布:centos arm版 编辑:程序博客网 时间:2024/05/21 04:22
xml文件定义 几个btn 一个用于显示的图片
补间动画:位置变化。但真实的图片没有动地方,只是看不见 了;
package com.lyz.news.d35bujian;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.AnimationSet;import android.view.animation.RotateAnimation;import android.view.animation.ScaleAnimation;import android.view.animation.TranslateAnimation;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity { private ImageView iv; private TranslateAnimation ta; private RotateAnimation ra; private ScaleAnimation sa; private AlphaAnimation aa; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //你的动画都是作业在imageview上面的把,所以要拿到他 iv = (ImageView) findViewById(R.id.iv); iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "你点不到我--------------", Toast.LENGTH_SHORT).show(); } }); } public void translate(View v) { //平移// 10 到100不是绝对坐标,可以理解为相对坐标把x起始位改为0就不起始就位移了,起始y0 // x y x y 起始x 结束y 起始x 结束y// ta=new TranslateAnimation(0,10,0,150); ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 3, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 2);//y的起始位置,0.5Y //设置持续时间 ta.setDuration(1000);// 重复 ta.setRepeatCount(2);// 重复模式 ta.setRepeatMode(Animation.RESTART);// 在imageView开启 iv.startAnimation(ta); } public void scale(View v) {// 缩放动画,从小到大的变化 0.5f 放大到2倍,y从0.1f放大到3倍// ScaleAnimation sa=new ScaleAnimation(0.5f,2,0.1f,3);// ScaleAnimation sa=new ScaleAnimation(0.5f,2,0.1f,3,iv.getWidth()/2,iv.getHeight()/2); sa = new ScaleAnimation(0.5f, 2, 0.1f, 3, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);// sa.setDuration(1000); sa.setRepeatCount(1); sa.setRepeatMode(Animation.RESTART); sa.setFillAfter(true); //这里是把动画ScaleAnimation加载到imageview到图片视图上别忘了// sa.start(); iv.startAnimation(sa); } public void alpha(View v) { aa = new AlphaAnimation(0, 1); sa.setRepeatCount(1); aa.setDuration(1000); iv.startAnimation(aa); } public void rotate(View v) {// RotateAnimation ra=new RotateAnimation(0,360);//相对于自己的大小转圈// RotateAnimation ra=new RotateAnimation(0,360,iv.getWidth()/2,iv.getHeight()/2);//在自身圆心 ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); ra.setDuration(1000); sa.setRepeatCount(1); iv.startAnimation(ra); } public void fly(View v) { //动画集合,false是使用自己的设置 AnimationSet as = new AnimationSet(false); as.addAnimation(ra); as.addAnimation(sa); as.addAnimation(ta); as.addAnimation(aa); iv.startAnimation(as); } /* public void shuxing(View v) { //属性,可以真实的改变坐标// target 作用于哪个组件图片视图 ObjectAnimator oba=ObjectAnimator.ofFloat(iv,"translationX",10,100); oba.setDuration(2000); oba.start(); }*/}属性动画:真实改变图片的属性,比如大小位置;
package com.lyz.news.d35bujian;import android.animation.Animator;import android.animation.AnimatorInflater;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.RotateAnimation;import android.view.animation.ScaleAnimation;import android.view.animation.TranslateAnimation;import android.widget.ImageView;import android.widget.Toast;public class MainShuxing extends Activity { private ImageView iv; private TranslateAnimation ta; private RotateAnimation ra; private ScaleAnimation sa; private AlphaAnimation aa; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //你的动画都是作业在imageview上面的把,所以要拿到他 iv = (ImageView) findViewById(R.id.iv); iv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainShuxing.this, "你点不到我--------------", Toast.LENGTH_SHORT).show(); } }); } public void translate(View v) { //平移 //属性,可以真实的改变坐标// target 作用于哪个组件图片视图// iv.transl ObjectAnimator oba=ObjectAnimator.ofFloat(iv,"translationX",10,70,20,100); oba.setDuration(2000); oba.start(); } public void scale(View v){ //缩放,分为水平缩放和竖直缩放,把小胖拉长和拉扁不一样的// iv.setScaleX(); //这里的属性1是本身2是2倍 ObjectAnimator ob=ObjectAnimator.ofFloat(iv,"ScaleX",1,1.6f,1.2f,3); ob.setDuration(2000); ob.start(); } public void alpha(View v){// iv.setAlpha(); ObjectAnimator ob=ObjectAnimator.ofFloat(iv,"alpha",0,0.6f,0.1f,1); ob.setDuration(2000); ob.start(); } public void rotate(View v){// iv.setRotationX();旋转 // iv.setRotation旋转有3个 ,分为水平(Y)旋转和竖直旋转(x)还有顺时针旋转; ObjectAnimator ob=ObjectAnimator.ofFloat(iv,"rotation",0,180,90,30); ob.setDuration(2000); ob.start(); } public void fly(View v){ ObjectAnimator oba1 =ObjectAnimator.ofFloat(iv,"translationX",10,70,20,100); oba1.setDuration(2000); oba1.start(); ObjectAnimator ob1=ObjectAnimator.ofFloat(iv,"rotation",0,180,90,30); ob1.setDuration(2000); ob1.start(); ObjectAnimator ob2=ObjectAnimator.ofFloat(iv,"alpha",0,0.6f,0.1f,1); ob2.setDuration(2000); ob2.start(); AnimatorSet ars=new AnimatorSet(); // ars.playSequentially(ob1,ob2,oba1);// 一个一个飞 //一起飞 ars.playTogether(ob1, ob2, oba1); ars.start(); } public void xml(View v){//布局文件用布局填充器 //动画用动画填充器 final Animator animator = AnimatorInflater.loadAnimator(this, R.animator.abjanimaor);// 设置目标在哪个图片视图上显示动画 animator.setTarget(iv); animator.start(); }}
0 0
- 补间动画和属性动画
- 属性动画和补间动画
- 69.补间动画和属性动画
- 帧动画,补间动画,和属性动画
- Android属性动画和View动画(补间动画)
- 补间动画,属性动画
- 补间&属性动画
- 属性动画,补间动画,帧动画
- 帧动画、补间动画、属性动画
- 帧动画&补间动画&属性动画
- 属性动画、帧动画、补间动画
- Android中属性动画和补间动画的区别
- 简单的平移属性动画和补间动画区别
- Android中属性动画和补间动画的区别
- Android中属性动画和补间动画的区别
- 补间动画和属性动画的用法
- Android中属性动画和补间动画的区别
- android中的动画:帧动画、补间动画、属性动画
- 机器学习-生成学习算法
- Android基础入门教程——2.5.1 Toast(吐司)的基本使用
- Javascript 学习 -- arguments
- C语言实现变长数组
- Android小项目之编写精美的聊天界面
- 补间动画和属性动画
- 数据结构和算法
- HDU 4548 美素数(西山居挑战赛)
- uml视频之uml概述一
- L0范数图像平滑
- cocos2d-x相关类的作用参考
- 巨型开坑预定---AWS开发
- Sniffer抓包教程
- OSI和TCP/IP