public class MainActivity extends AppCompatActivity {

ImageView view1,view2;//linearLayout当中竖直排列的两个imageView

AlphaAnimation animationOut,animationIn;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

view1 = (ImageView) findViewById(R.id.view_1);

view2 = (ImageView) findViewById(R.id.view_2);

initAnimation();

view1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

ObjectAnimator.ofInt(view2,"top",view2.getTop()-view1.getHeight()).setDuration(500).start();

ObjectAnimator.ofInt(view2,"bottom",view2.getBottom()-view1.getHeight()).setDuration(500).start();

view1.startAnimation(animationOut);

}

});

view2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if(view1.getVisibility() == View.GONE){

ObjectAnimator.ofInt(view2,"top",view2.getTop()+view1.getHeight()).setDuration(500).start();

ObjectAnimator.ofInt(view2,"bottom",view2.getBottom()+view1.getHeight()).setDuration(500).start();

view1.startAnimation(animationIn);

}

}

});

}

private void setClickable(boolean which){

view1.setClickable(which);

view2.setClickable(which);

}

private void initAnimation(){

animationOut = new AlphaAnimation(1f,0f);

animationOut.setDuration(500);

animationOut.setAnimationListener(new Animation.AnimationListener() {

@Override

public void onAnimationStart(Animation animation) {

setClickable(false);

}

@Override

public void onAnimationEnd(Animation animation) {

view1.setVisibility(View.GONE);

setClickable(true);

}

@Override

public void onAnimationRepeat(Animation animation) {

}

});

//

animationIn = new AlphaAnimation(0f,1f);

animationIn.setDuration(500);

animationIn.setAnimationListener(new Animation.AnimationListener() {

@Override

public void onAnimationStart(Animation animation) {

setClickable(false);

}

@Override

public void onAnimationEnd(Animation animation) {

view1.setVisibility(View.VISIBLE);

setClickable(true);

}

@Override

public void onAnimationRepeat(Animation animation) {

}

});

}

}

顺便为需要隐藏的view加了个alpha效果,这样看起来自然一些。

android动画回到原位,使用动画隐藏view后,原来的位置空白相关推荐

  1. Android高阶转场动画-ShareElement完全攻略

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 看完本文你能学到什么: 1.ShareElement是什么以及基本用法 2.理解ShareElement是如何运作的 3.掌握Sha ...

  2. android 同根动画_android 动画系列 (1) - tween 动画(view动画)

    这是我这个系列的目录,有兴趣的可以看下: android 动画系列 - 目录 tween 动画早些时候我们也叫补间动画(我也不知道为啥),现在也有叫 view 动画的.tween动画是2.X 时代的产 ...

  3. 如果写一个点击view带动画的下滑展开显示隐藏内容的控件

    原理是在onMeasure中得到隐藏内容的高度,点击这个view的时候对隐藏的view startAnimation,让它的高度从0增长到onMeasure得到的这个View的measureHeigh ...

  4. 红橙Darren视频笔记 筛选View 属性动画 Adapter模式 组合动画AnimatorSet 观察者模式(对比Android ListView) 练习

    效果 一 布局分析: 分成三部分 1.菜单栏TabView部分 本文采用线性布局包裹TextView的形式 采用LinearLayout的原因是每个Tab页可以使用权重做到均分LinearLayout ...

  5. Android实现长按圆环动画View

    一.需求来源 最近想到一个需求,类似悦跑圈或者Keep的结束按钮动画 二.思路代码 该动画按钮的主要作用就是防止用户误操作,具体实现思路如下: 1.监听用户的触摸事件OnTouchListener,在 ...

  6. Android有趣的爆炸散落动画view:开源ExplosionField

     Android有趣的爆炸散落动画view:开源ExplosionField github上有一个比较有趣的view动画开源项目ExplosionField,当点击该view时候,产生如图所示效果 ...

  7. android 动画之漂移,[超棒]自定义View居然还能这样?用 Android 实现一条小金鱼游动动画...

    原标题:[超棒]自定义View居然还能这样?用 Android 实现一条小金鱼游动动画 前言 此篇中的小鱼动画是模仿国外一个大牛做的flash动画,第一眼就爱上它了,简约灵动又不失美学,于是抽空试着尝 ...

  8. Android按下录音录音动画效果 ,自定义录音、播放动画View

    Android按下录音录音动画效果 ,自定义录音.播放动画View https://download.csdn.net/download/abc2522/10327428?spm=1001.2101. ...

  9. android popupwindow边框阴影,android PopupWindow 阴影背景 、动画 、点击显示、隐藏

    阴影背景 bg_shadow_white.xml 入动画 pop_enter_anim.xml 出动画 pop_exit_anim.xml 动画 样式 点击显示.隐藏 final PopupWindo ...

最新文章

  1. C# 获得系统AppData路径
  2. 电脑爱好者GHOSTWIN764位V4.0
  3. Web中的XHRHttpRequest
  4. P2253 好一个一中腰鼓!
  5. 【转】ABP源码分析十五:ABP中的实用扩展方法
  6. 第一部分 Calendar介绍
  7. matplotlib绘制箭头
  8. jdk13不能显示中文_JDK 13都发布了!你还在用JDK7吗?
  9. Win10:ssh报错:RSA host key for 192.168.3.10 has changed and you have requested strict checking.
  10. 操蛋!新来的同事竟然不会在javaee项目中使用WebSocket~
  11. 深入Managed DirectX9(十五)
  12. 软件测试报告的项目背景,软件测试报告范本
  13. 电子数据取证基础知识5
  14. 泛函分析笔记08:有界线性算子和泛函介绍与共鸣定理
  15. 神经网络图用什么软件做,神经网络输入图片大小
  16. 【毕业设计】8-基于STM32的水质_浊度检测仪设计与实现(原理图+源码+实物照片+答辩论文)
  17. ipad键盘符号少怎么办?
  18. linux的mysql占用cpu过高_linux 系统中Mysql 进程占用cpu过高的解决
  19. ROS人机交互软件开发
  20. 外包项目注意事项问题

热门文章

  1. python 搭建ftp服务器
  2. unix更喜欢进程,可是...
  3. Windows 2003下的Http 500错误
  4. IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例
  5. How to enable javascript in windows server 2008 R2 enterprise
  6. 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
  7. POJ 1002题 解题报告
  8. linux 查看某一个进程的socket连接数
  9. linux mailx 发邮件
  10. python3 数据库操作 orm sqlalchemy 简介