运用属性动画实现图标的竖直弹出
来源:互联网 发布:天猫耐克官网抢鞋软件 编辑:程序博客网 时间:2024/06/05 16:05
1,首先是布局,用到了帧布局,其实用相对布局也是可以的,另外还有注意的一点是需要将显示的图片放到最上面
</pre><pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/a" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/a"/> <ImageView android:id="@+id/b" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/b"/> <ImageView android:id="@+id/c" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/c"/> <ImageView android:id="@+id/d" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/d"/> <ImageView android:id="@+id/e" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/e"/></FrameLayout>
2.接下来是java代码的书写,我定义的最上面的图片的监听事件来对下面的图片进行动画控制,定义一个数组来存放图片,方便找到控件,
package com.example.nete.animator2;import android.animation.ObjectAnimator;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.animation.BounceInterpolator;import android.widget.ImageView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private int[] res = {R.id.e, R.id.d, R.id.c, R.id.b, R.id.a}; private List<ImageView> mImageViewList = new ArrayList<ImageView>(); private boolean flag = true;//设置该属性用于收回图标 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pic); for (int i = 0; i < res.length; i++) { ImageView imageView = (ImageView) findViewById(res[i]); imageView.setOnClickListener(this); mImageViewList.add(imageView);//将图片添加到list,用于之后的设置动画 } } @Override public void onClick(View view) { switch (view.getId()) { case R.id.e: { if (flag) { startanim(); } else { closeanim(); } } break; default: { Toast.makeText(MainActivity.this,"click"+view.getId(),Toast.LENGTH_LONG).show(); } break; } }//设置再次点击时 回收图标 private void closeanim() { for (int i = 1; i < res.length; i++) { ObjectAnimator animator = ObjectAnimator.ofFloat(mImageViewList.get(i), "translationY", i * 150f, 0); animator.setDuration(500); animator.setStartDelay(300); animator.start(); flag = true; } } //设置点击按钮时开始展开出菜单 private void startanim() { for (int i = 1; i < res.length; i++) { ObjectAnimator animator = ObjectAnimator.ofFloat(mImageViewList.get(i), "translationY", 0, i * 150f); animator.setDuration(i*500); //设置开始动画时有个时间的延迟 animator.setStartDelay(i*300); //插值器,让动画结束时有个回弹的效果,大家也可以试试其他效果,还是挺有趣的 animator.setInterpolator(new BounceInterpolator()); animator.start(); flag = false; } }}
0 0
- 运用属性动画实现图标的竖直弹出
- 属性动画的实现
- 收藏图标--属性动画
- 元素竖直居中的实现
- Android使用属性动画,实现分散式弹出菜单
- 纯CSS3 实现的新闻联播图标动画
- Android属性动画运用实例
- 字体图标的运用
- CSS3中的动画,animation、transition和transform属性的运用
- CSS3中的动画,animation、transition和transform属性的运用
- 属性动画的基本实现
- 属性动画 的XML实现
- Android属性动画的实现
- Apple Music卡片弹出动画的实现
- Apple Music卡片弹出动画的实现
- 怎么实现XMind中Iconfinder图标的运用
- Android属性动画弹出效果
- 竖直方向的ViewPager的实现方式
- sem_wait()和sem_timedwait()区别
- date_cal_bc
- Android开发板在Linux系统下的调试工具
- hdu 5759 2016 Multi-University Training Contest 3 Gardener Bo 解题报告
- POJ 3295 Tautology(构造法)
- 运用属性动画实现图标的竖直弹出
- JavaEE之位运算
- json和pickle区别
- Android6.0及以上版本一次请求多个权限的处理方式
- PID算法
- POJ 1049 Round and Round We Go 大数模拟
- 广州找工作 android工程师实习生 经验
- Codeforces Round 371 D Animals and Puzzle
- 修改值类型的实例方法 mutating