Android中利用TranslateAnimation移动时,不设置mTranslateAnimation.setFillAfter(true);,而利用视图的setLayoutParams来重新定位。。。。因为mTranslateAnimation.setFillAfter(true);之后,视图的事件消失,并且还有很多其他的问题。

 

而我们采用Animation.AnimationListener,在onAnimationEnd的方法中改变当前视图利用LayoutParams的setMargins方法重新定位位置。

代码段,仅供参考。

  1. public void move() {
  2. jqkjScroll.setEnabled(true);
  3. Animation mTranslateAnimation = new TranslateAnimation(, , ,
  4. -showheight);// 移动
  5. mTranslateAnimation.setDuration(minute);
  6. // mAnimationSet.setFillAfter(true);
  7. // mTranslateAnimation.setFillAfter(true);
  8. mTranslateAnimation
  9. .setAnimationListener(new Animation.AnimationListener() {
  10. public void onAnimationStart(Animation animation) {
  11. if (isNoMenu == false) {
  12. curent.setVisibility(View.GONE);
  13. }
  14. }
  15. public void onAnimationEnd(Animation animation) {
  16. RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
  17. contentLayout.getLayoutParams());
  18. contentImg.setImageResource(R.drawable.open);
  19. params.setMargins(, endY - startY, , );
  20. contentLayout.clearAnimation();
  21. contentLayout.setLayoutParams(params);
  22. jqkjScroll.scrollTo(, );
  23. isMoveORShowing = false;
  24. }
  25. public void onAnimationRepeat(Animation animation) {
  26. }
  27. });
  28. contentLayout.startAnimation(mTranslateAnimation);
  29. }
  30. public void show() {
  31. jqkjScroll.setEnabled(false);
  32. Animation mTranslateAnimation = new TranslateAnimation(, , ,
  33. showheight);// 移动
  34. mTranslateAnimation.setDuration(minute);
  35. mTranslateAnimation
  36. .setAnimationListener(new Animation.AnimationListener() {
  37. public void onAnimationStart(Animation animation) {
  38. if (isNoMenu == false) {
  39. curent.setVisibility(View.VISIBLE);
  40. }
  41. }
  42. public void onAnimationEnd(Animation animation) {
  43. contentImg.setImageResource(R.drawable.close);
  44. isMoveORShowing = false;
  45. contentLayout.clearAnimation();
  46. RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
  47. contentLayout.getLayoutParams());
  48. params.setMargins(, showheight + endY - startY, , );
  49. contentLayout.setLayoutParams(params);
  50. }
  51. public void onAnimationRepeat(Animation animation) {
  52. }
  53. });
  54. contentLayout.startAnimation(mTranslateAnimation);
  55. }

Android应用TranslateAnimation移动之后,利用视图的setLayoutPara的更多相关文章

  1. [转]Android中Xposed框架篇—利用Xposed框架实现拦截系统方法

    一.前言 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,还有一个框架是CydiaSubstrate,但是这个框架是收费的,而且个人觉得不怎么好用,而Xpo ...

  2. Android应用开发学习之表格视图

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 本文我们来学习一个使用表格视图的程序,下图是该程序的运行效果: 该程序主Activity文件内容如下: packag ...

  3. Android View体系(一)视图坐标系

    前言 Android View体系是界面编程的核心,他的重要性不亚于Android四大组件,在这个系列中我会陆续讲到View坐标系.View的滑动.View的事件分发等文章来逐步介绍Android V ...

  4. Android分组子级的不同视图布局之BUG奇遇记

    Android分组子级的不同视图布局之BUG奇遇记 最近在使用按日期分类列表,二级条目可能不一样,于是就想到了ExpandableListView. ExpandableListView的布局显示分割 ...

  5. oracle 创建视图、修改视图、删除视图、利用视图操作基本表

    转:http://blog.sina.com.cn/s/blog_6b58d2fa0100rgvw.html 1.使用create or replace view命令创建视图 语法格式: create ...

  6. Android使用Mono c#分段列表视图

    下载source code - 21.7 KB 你想知道如何把多个ListView控件放到一个布局中,但是让它们在显示时表现正确吗 多个列表项?你对它们正确滚动有问题吗?这个例子将向你展示如何组合单独 ...

  7. Android学习笔记(九) 视图的应用布局效果

    最近少了写博客,可能最近忙吧,工作上忙,因为工作原因也忙于学习,也没记录什么了,也没有按照之前的计划去学习了.现在就记录一下最近学到的. 要做Android应用,界面设计少不了,可惜之前一直在用Win ...

  8. 【Android】9.3 自定义列表视图的外观

    分类:C#.Android.VS2015: 创建日期:2016-02-18 一.简介 自定义的列表视图通常用Resources/Layout文件夹下的axml文件中的资源来声明,适配器则通过Id去加载 ...

  9. android AppWidget的使用以及利用TimerTask实现widget的定时更新

    第一步:首先是Widget的定义声明: 在资源文件下的xml目录中建立文件example_appwidget_info.xml: <?xml version="1.0" en ...

随机推荐

  1. flutter 极光推送

    一.配置极光开发者 1.注册极光开发者 https://www.jiguang.cn/push 2.创建应用 二.创建APP 1.添加依赖 pubspec.yaml  添加: flutter_jpus ...

  2. CvScalar

    CvScalar定义可存放1—4个数值的数值,其结构如下. typedef struct CvScalar{    double val[4];}CvScalar; ----------------- ...

  3. HDU 2562 奇偶位互换(字符串,水)

      奇偶位互换 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  4. Linux命令之quota

    quota [-guqvswim] [-l | [-Q | -A] ] [-F quotaformat] quota [-qvswim] [-l | [-Q | -A]] [-F quotaforma ...

  5. 复制对象 copy 与mutable copy

      转载 :  http://blog.csdn.net/u010962810/article/details/18887841   通过copy方法可以创建可变对象或不可变对象的不可变副本,对于不可 ...

  6. bit & byte & B & KB & Kbps & KBps & ps

    存储单位bit & byte & B & KB & Kbps & KBps & ps    (bit,位:byte,字节:区别) Bit,位 :二进制数 ...

  7. intellij idea 为JavaEE项目建立Servlet

    建立Servlet的方法 顶部菜单栏 View > Tool Windows > Web. 然后互相web窗口 右键Web>new>Servlet 弹出窗口

  8. Spring学习——DI(依赖注入)

    IOC容器,处理对象依赖关系 IOC与DI: IOC :是一个容器,创建对象的容器 DI :在容器创建对象后,处理对象的依赖关系,也叫依赖注入! 方式1:通过set方法注入值 可以给普通属性.集合属性 ...

  9. golang垃圾回收

    常见GC算法 我总结了一下常见的 GC 算法.分别是:引用计数法.Mark-Sweep法.三色标记法.分代收集法. 1. 引用计数法 原理是在每个对象内部维护一个整数值,叫做这个对象的引用计数,当对象 ...

  10. java基础之:java注解

    一:元注解 元注解的作用就是负责注解其他注解.Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明.Java5.0定义的元注解: 1. ...