比较简单的效果,可以用来菜单飞入之类,作为记录吧,

  1. package com.test.animation;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.Button;
  7. import android.widget.LinearLayout;
  8.  
  9. import com.nineoldandroids.animation.AnimatorSet;
  10. import com.nineoldandroids.animation.ObjectAnimator;
  11.  
  12. import java.util.ArrayList;
  13. import java.util.List;
  14.  
  15. /**
  16. * Created by song on 2015/3/5.
  17. */
  18. public class AnimationContextMenuActivity extends Activity{
  19. List<Button> items = new ArrayList<Button>();
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. initView();
  24. }
  25.  
  26. private void initView() {
  27. LinearLayout layout = new LinearLayout(this);
  28. layout.setOrientation(LinearLayout.VERTICAL);
  29. LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
  30.  
  31. for (int i = 0; i < 5; i++) {
  32. Button btn = new Button(this);
  33. btn.setText("btn" + i);
  34. btn.setAlpha(0);
  35. items.add(btn);
  36. layout.addView(btn,params);
  37. }
  38. setContentView(layout);
  39. // showMenu();//顺序飞入
  40. showMenu1();//延迟飞入
  41. }
  42.  
  43. private void showMenu() {
  44. AnimatorSet set=new AnimatorSet();
  45. set.playSequentially(getAnimation(items.get(0)), getAnimation(items.get(1)), getAnimation(items.get(2)), getAnimation(items.get(3)), getAnimation(items.get(4)));
  46. set.start();
  47. }
  48. private AnimatorSet getAnimation(View view){
  49. AnimatorSet set=new AnimatorSet();
  50. set.playTogether(ObjectAnimator.ofFloat(view, "translationX", -100, 0).setDuration(500),ObjectAnimator.ofFloat(view,"alpha",0,1).setDuration(500));
  51. return set;
  52. }
  53.  
  54. private void showMenu1() {
  55. AnimatorSet set=new AnimatorSet();
  56. set.playTogether(getAnimation1(items.get(0)), getAnimation1(items.get(1)), getAnimation1(items.get(2)), getAnimation1(items.get(3)), getAnimation1(items.get(4)));
  57. set.start();
  58. }
  59. int i=0;
  60. private AnimatorSet getAnimation1(View view){
  61. AnimatorSet set=new AnimatorSet();
  62. set.playTogether(ObjectAnimator.ofFloat(view, "translationX", -100, 0).setDuration(500),ObjectAnimator.ofFloat(view,"alpha",0,1).setDuration(500));
  63. set.setStartDelay((i += 1) * 100);
  64. return set;
  65. }
  66. }

  

直接上代码

使用属性动画简单实现view飞入效果的更多相关文章

  1. Android -- 自定义ViewGroup+贝塞尔+属性动画实现仿QQ点赞效果

    1,昨天我们写了篇简单的贝塞尔曲线的应用,今天和大家一起写一个QQ名片上常用的给别人点赞的效果,实现效果图如下: 红心的图片比较丑,见谅见谅(哈哈哈哈哈哈).... 2,实现的思路和原理 从上面的效果 ...

  2. Animation-list,帧动画+属性动画,做出Flash般的效果

    我们会用到PS,即使不会也不要怂,只需要几步傻瓜式操作即可. 属性动画可以看看我另一篇文章:属性动画详解 效果图 相信机智的各位,看完之后一定能发挥创意,做出更酷更炫的效果 图层获取 首先你需要找一张 ...

  3. Android属性动画简单剖析

    运行效果图: 先看布局文件吧,activity_main.xml: <?xml version="1.0" encoding="utf-8"?> & ...

  4. Android属性动画-简单实例

    1.ValueAnimator //在2000毫秒内,将值从0过渡到1的动画 ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f); anim.setD ...

  5. Android动画效果之Property Animation进阶(属性动画)

    前言: 前面初步认识了Android的Property Animation(属性动画)Android动画效果之初识Property Animation(属性动画)(三),并且利用属性动画简单了补间动画 ...

  6. Android开发——View动画、帧动画和属性动画详解

    0. 前言   Android动画是面试的时候经常被问到的话题.我们都知道Android动画分为三类:View动画.帧动画和属性动画. 先对这三种动画做一个概述: View动画是一种渐进式动画,通过图 ...

  7. 每日一问:到底为什么属性动画后 View 在新位置还能响应事件

    在 Android 开发中,我们难免会使用动画来处理各种各样的动画效果,以满足 UI 的高逼格设计.对于比较复杂的动画效果,我们通常会采用著名的开源库:lottie-android,或许你会对 lot ...

  8. android 帧动画,补间动画,属性动画的简单总结

      帧动画——FrameAnimation 将一系列图片有序播放,形成动画的效果.其本质是一个Drawable,是一系列图片的集合,本身可以当做一个图片一样使用 在Drawable文件夹下,创建ani ...

  9. android 开发 View _2_ View的属性动画ObjectAnimator ,动画效果一览

    支持:https://www.cnblogs.com/whoislcj/p/5738478.html translationX的效果: protected void onCreate(Bundle s ...

随机推荐

  1. WCF初探-18:WCF数据协定之KnownType

    KnownTypeAttribute 类概述 在数据到达接收终结点时,WCF 运行库尝试将数据反序列化为公共语言运行库 (CLR) 类型的实例.通过首先检查传入消息选择为反序列化而实例化的类型,以确定 ...

  2. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)

    一.实现效果             二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...

  3. RHCE 系列(二):如何进行包过滤、网络地址转换和设置内核运行时参数

    正如第一部分(“设置静态网络路由”)提到的,在这篇文章(RHCE 系列第二部分),我们首先介绍红帽企业版 Linux 7(RHEL)中包过滤和网络地址转换(NAT)的原理,然后再介绍在某些条件发生变化 ...

  4. Wifite v2 is now available

    Wifite v2 is now available What's new in this version: support for cracking WPS-encrypted networks ( ...

  5. Leetcode 171 Excel Sheet Column Number 难度:0

    https://leetcode.com/problems/excel-sheet-column-number/ class Solution { public: int titleToNumber( ...

  6. General Motors China

    General Motors Co., one of the world's largest automakers, trace its root back to 1908. The General ...

  7. 开发者如何利用工具快速开发出完美APP

    文|移动互联网李建华 微信:ydhlwdyq 传统的个人开发者,要想开发出一个完美的APP要 经过以下几个过程:搭建开发环境,写代码,写统计系统,开发即将完成后,要购买服务器,然后把程序布置到服务器上 ...

  8. jQuery遍历Json数组

    var jsonArray=  [{ "name": "张三", "password": "123456"},{ &qu ...

  9. Steganography-图片隐写术

    今天做DAM的作业,做到图片水印的时候,想起来当初小调同学把言页之庭的种子通过图片发给我.看到下面这个新闻真是觉得碉堡了!!技术宅又一次可以成功而隐晦的表白了!!哈哈哈!! http://war.16 ...

  10. android基础(三)ContentProvider

    ContentProvider主要用于在不同的应用程序之间实现数据共享,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性,目前内容提供其实android实现跨 ...