似乎没有一种简单的方法通过API来做到这一点,因为动画只是改变视图的渲染矩阵,而不是实际的大小。但是我们可以设置一个负边距来愚弄LinearLayout,认为视图越来越小。

所以我建议创建你自己的Animation类,基于ScaleAnimation,并重写“applyTransformation”方法来设置新的边距和更新布局。喜欢这个…

public class Q2634073 extends Activity implements OnClickListener {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.q2634073);

findViewById(R.id.item1).setOnClickListener(this);

}

@Override

public void onClick(View view) {

view.startAnimation(new MyScaler(1.0f, 1.0f, 1.0f, 0.0f, 500, view, true));

}

public class MyScaler extends ScaleAnimation {

private View mView;

private LayoutParams mLayoutParams;

private int mMarginBottomFromY, mMarginBottomToY;

private boolean mVanishAfter = false;

public MyScaler(float fromX, float toX, float fromY, float toY, int duration, View view,

boolean vanishAfter) {

super(fromX, toX, fromY, toY);

setDuration(duration);

mView = view;

mVanishAfter = vanishAfter;

mLayoutParams = (LayoutParams) view.getLayoutParams();

int height = mView.getHeight();

mMarginBottomFromY = (int) (height * fromY) + mLayoutParams.bottomMargin - height;

mMarginBottomToY = (int) (0 - ((height * toY) + mLayoutParams.bottomMargin)) - height;

}

@Override

protected void applyTransformation(float interpolatedTime, Transformation t) {

super.applyTransformation(interpolatedTime, t);

if (interpolatedTime < 1.0f) {

int newMarginBottom = mMarginBottomFromY

+ (int) ((mMarginBottomToY - mMarginBottomFromY) * interpolatedTime);

mLayoutParams.setMargins(mLayoutParams.leftMargin, mLayoutParams.topMargin,

mLayoutParams.rightMargin, newMarginBottom);

mView.getParent().requestLayout();

} else if (mVanishAfter) {

mView.setVisibility(View.GONE);

}

}

}

}

通常的警告适用:因为我们覆盖一个受保护的方法(applyTransformation),这不能保证在未来的Android版本中工作。

android view.gone 动画,android – 如何动画View.setVisibility(GONE)相关推荐

  1. android组合动画还原,Android - Fragment,View动画,组合动画,属性动画

    转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72876871 1.什么是Fragment 片段,碎片 * 从Android 3.0 ...

  2. android覆盖扩散动画,[Android]多层波纹扩散动画——自定义View绘制

    之前整理过一些属性动画的基本操作,这一段时间的动画相关需求都安然度过了.直到这次-- 一.另一种动画需求 多数交互中的动画都是让单个页面元素动起来,这种就很适合用属性动画实现.但是对于 多个元素.非页 ...

  3. android显示绘图动画,Android自定义View绘图实现渐隐动画

    实现了一个有趣的小东西:使用自定义view绘图,一边画线,画出的线条渐渐变淡,直到消失.效果如下图所示: 用属性动画或者渐变填充(shader)可以做到一笔一笔的变化,但要想一笔渐变(手指不抬起边画边 ...

  4. android 减速动画,Android View Animation

    概述 可译为视图动画,分为 缩放动画 平移动画 渐变动画 旋转动画 Android系统中定义了一个抽象类Animation来定义这种视图动画,它的具体子类如下表: 动画名称 对应的子类 xml中标签 ...

  5. android view退出动画,android animation——view进来退出动画

    在设计android项目的时候我们有时候需要对activity的进入退出做一些动画处理,虽然android自身已经做了动画处理,但是我们需要更加炫酷的动画就需要自己去写一些动画了. 有时候不光acti ...

  6. android动画view上移,在Android开发中使用View制作一个引导动画

    在Android开发中使用View制作一个引导动画 发布时间:2020-11-20 16:46:16 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关在Android开发中使用V ...

  7. android view过度动画,为View的切换添加过渡动画

    为View的切换添加过渡动画 Author: nex3z 2016-01-09 动画效果不仅可以使得应用更加吸引人,更可以突出变化的内容,使得用户能够更好地理解应用的操作和运作方式.Android提供 ...

  8. 球体动画Android,Android自定义View实现简单炫酷的球体进度球实例代码

    前言 最近一直在研究自定义view,正好项目中有一个根据下载进度来实现球体进度的需求,所以自己写了个进度球,代码非常简单.先看下效果: 效果还是非常不错的. 准备知识 要实现上面的效果我们只要掌握两个 ...

  9. android从一点展开动画,Android自定义View——从零开始实现可展开收起的水平菜单栏...

    大家要是看到有错误的地方或者有啥好的建议,欢迎留言评论 前言:最近项目里要实现一个 可展开收起的水平菜单栏控件,刚接到需求时想着用自定义View自己来绘制,发现要实现 圆角.阴影.菜单滑动等效果非常复 ...

  10. android+清除循环动画,android自定义View之(4)-一键清除动画

    android自定义View之(四)------一键清除动画 1.前言: 自己也是参考别人的一些自定义view例子,学习了一些基本的自定义view的方法.今天,我参考了一些资料,再结合自已的一些理解, ...

最新文章

  1. 【OpenCV 4开发详解】图像连接
  2. script 录制终端会话
  3. Jquery通过ajax请求NodeJS返回json数据
  4. NYOJ 674 善良的国王(树形背包DP)
  5. 搜索引擎学习(三)Lucene查询索引
  6. kafak消费者从头开始消费(消费者组)
  7. JAVA计时函数的库_JAVA开发常用类库UUID、Optional、ThreadLocal、TimerTask、Base64使用方法与实例详解...
  8. matlab 等高线_MATLAB作图实例:39:更改等高线图的填充颜色
  9. 记一次,jvm 内存溢出
  10. Ubuntu终端(terminal)及Thunderbird邮件客户端常用的快捷键
  11. 使用Python编写程序安排期末考试监考
  12. 拓端tecdat|Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING REGRESSOR回归训练和预测可视化
  13. MVC中code first方式开发,数据库的生成与更新
  14. Android加载自定义字体出错,盘点Android使用自定义字体遇到的坑
  15. matlab 最小二乘解超定方程,matlab 超定方程 最小二乘解
  16. 蜂巢输入法android,讯飞输入法“蜂巢II”输入模型 内核提速便捷实用
  17. 宝塔面板php无法安装,宝塔面板php无法安装怎么办
  18. 对QQGame-大家来找茬的辅助工具的改进
  19. 一篇文章让你看懂信息安全领域的巨鳄(小白必看)
  20. 高情商的人都在这样表现汇报工作

热门文章

  1. java jersey介绍
  2. OpenWRT安装及配置
  3. C语言的return用法
  4. unity制作法线贴图
  5. 考健身教练的要求有哪些?应该怎么做才好?
  6. YC创业课:如果你只有一年可活,还要不要来我司工作?
  7. linux服务器如何测试网速
  8. 一千万条数据去重_DB2千万级数据去重
  9. java bulk_Elasticsearch Java High Level REST Client(Bulk API)
  10. Win10关闭不需要的应用