如何以编程方式在视图上同时应用平移和缩放动画

2024-02-07

如何在视图上应用带有缩放动画的平移动画。我必须将视图移动到另一个视图位置并同时缩小。

如何将视图从其位置缩放到另一个视图位置(第二个视图不固定)?

startView - 翻译的视图

finishView - 动画结束的地方。

**代码 **

  private void startAnimation(View startView, View finishView) {

    int startX = startView.getLeft() + startView.getWidth() / 2;
    int startY = startView.getTop() + startView.getHeight() / 2;
    int startViewLocation[]=new int[2];
    startView.getLocationInWindow(startViewLocation);
    int finishViewLocation[]=new int[2];
    finishView.getLocationInWindow(finishViewLocation);
    int endX = finishViewLocation[0];
    int endY=finishViewLocation[1];
    System.out.println("statX " + startX + " " + (startView.getLeft() + startView.getWidth() / 2));
    System.out.println("statY " + startY+" "+(startView.getTop() + startView.getHeight() / 2));

    System.out.println("endX " + endX+" "+finishViewLocation[0]);
    System.out.println("endY " + endY+" "+finishViewLocation[1]);

    TranslateAnimation translateAnimation = new TranslateAnimation(0, 0,
            TranslateAnimation.ABSOLUTE, endX, 0, 0,
            TranslateAnimation.ABSOLUTE, endY);
    ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.0f, 1.0f,
            0.0f);
    AnimationSet set = new AnimationSet(true);

    set.addAnimation(translateAnimation);
    set.addAnimation(scaleAnimation);
    set.setFillAfter(true);
    set.setDuration(2000);
    set.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            // TODO Auto-generated method stub

        }
    });
    startView.startAnimation(set);

}

private void scaleAnimation(final View startView, View finishView,final TextView cartItems) {
    int startViewLocation[] = new int[2];
    startView.getLocationInWindow(startViewLocation);
    int finishViewLocation[] = new int[2];
    finishView.getLocationInWindow(finishViewLocation);
    int startX = startViewLocation[0] + startView.getWidth() / 2;
    int startY = startViewLocation[1] + startView.getHeight() / 2;
    int endX = finishViewLocation[0] + finishView.getWidth() / 2;
    int endY = finishViewLocation[1] + finishView.getHeight() / 2;
    ScaleAnimation animation = new ScaleAnimation(1f, 0f, 1, 0f,
            Animation.ABSOLUTE, endX - startX + startView.getWidth() / 2,
            Animation.ABSOLUTE, endY - startY + startView.getHeight() / 2);
    // animation.scaleCurrentDuration(6000);
    animation.setDuration(2000);
    // animation.setStartOffset(50);
    animation.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            startView.setVisibility(View.VISIBLE);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            startView.setVisibility(View.GONE);
            cartItems.setText(String.valueOf(totlaCartsItems));
        }
    });
    startView.startAnimation(animation);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式在视图上同时应用平移和缩放动画 的相关文章

  • 当活动被破坏时如何保存状态

    public class Talk extends Activity private ProgressDialog progDialog int typeBar TextView text1 EditText edit Button res
  • animation.start() 或animation.startNow() 不会立即开始动画

    我有一个奇怪的问题 有时应该淡出我的控件 ImageButton 的动画不会立即启动 我使用淡出动画来隐藏它 然后在 myListener 的末尾 onAnimationEnd 中 我将新资源作为按钮上的图像 我的应用程序代码中的某处 An
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • 在android Gridview中合并行和列

    我正在android中做一个图像查看页面 我需要在某些地方合并行 在某些地方合并列 我们可以在gridview中做到这一点吗 如果我们选择任何合并图像 则应选择整个图像视图 请任何人告诉我一个建议 提前致谢 Try 非对称网格视图 http
  • Android 软键盘 - 禁用某些键

    我正在寻找一种使用内置软键盘并禁用某些键的方法 例如 如果用户不应该使用字母 f 因为在列表中该字母不存在 则该键应显示为灰色 想象一下 用户可以在文本框中键入文本以从列表中进行选择 该列表包含 ABC BCCD 床 如果用户输入 A 然后
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Android 和 Honeycomb - 如何使用 SDK 13 拥有菜单图标而不需要“操作栏”

    我想最大限度地利用 Honeycomb 应用程序的屏幕 由于屏幕底部已经被 始终打开 的项目所困 我想在该空间中添加一个菜单按钮 而不是牺牲更多的屏幕空间 在顶部放置一个 操作栏 我怎样才能做到这一点without降级到 API 10 或更
  • 如何在启用抗锯齿的情况下旋转可绘制对象

    我需要将 ImageView 旋转几度 我通过子类化 ImageView 和重载来做到这一点onDraw Override protected void onDraw Canvas canvas canvas save canvas sca
  • 返回到上一个活动的最后状态

    我有两个活动 A 和 B 当应用程序启动时 活动 A 会被加载 我会从数据库将数据加载到其中 我可以毫无问题地转到活动 B 但是当我返回活动 A 时 会查看旧数据一段时间 然后重新加载活动 知道如何解决这个问题吗 在从数据库加载数据之前清除
  • FileObserver 不适用于 Android 6.0 Marshmallow (API 23) 中的外部存储

    我有一个应用程序可以观察外部存储上的公共目录FileObserver 它运行良好Lollipop设备 我想添加对Marshmallow 所以我用它设置了一台 Nexus 9 平板电脑 在 Marshmallow 设备上 它失败 在 Loll
  • Android:外部存储上的 mkdirs()/mkdir() 返回 false

    我对此感到疯狂 Log d STATE Environment getExternalStorageState File f new File Environment getExternalStoragePublicDirectory En
  • 如何在移动应用程序上连接到服务器?

    我是移动应用程序的新手 我基本上来自网络开发平台 我只是在玩 App Framework LungoJS Jquery Mobile kendo 等移动框架 以获得该垂直领域的一些知识 我正在开发的应用程序仍然处于 UI 级别 我所需要的只
  • Android 应用程序不需要任何特殊访问权限

    当我开始安装时myapp apk 我得到下面的屏幕 我的应用程序需要位置 外部存储权限 上述权限应该根据需要向用户请求 即在需要这些权限的代码之前 现在 当安装应用程序时 我会看到一个屏幕 上面显示应用程序不需要任何特殊访问权限 如下图所示
  • Android 导航组件 - 从“任何地方”/基本片段导航?

    我正在开发一个应用程序 它有一个奇怪的花招 可以在设备旋转时打开特定的片段 在实现 android 的导航组件之前 所需要的只是对当前活动的引用 并且可以在特定时刻向用户显示的任何内容之上执行手动片段事务 但是在转移到导航组件之后 我发现很
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • 使用 matplotlib.animation 从 CSV 文件实时绘图 - 数据绘制到第一个输入错误

    我正在尝试绘制来自不断写入 CSV 文件的传感器的数据 虽然成功创建实时绘图 但每个新数据条目都会创建一条延伸到第一个数据条目的附加线 见下文 Python 3 4 脚本 import matplotlib pyplot as plt im
  • 使用bindService启动IntentService时是否应该调用onHandleIntent?

    我的服务延伸IntentService当它开始时startService onHandleIntent被叫 但是 当服务启动时bindService 我确实需要绑定 onHandleIntent没有被调用 Should onHandleIn
  • 如何在android中将文本放在单选按钮的左侧

    我想将单选按钮的文本放在左侧而不是右侧 我找到了这个解决方案
  • 我想要有条件的登录导航,没有 MAIN 片段或按钮

    我正在使用 Android Jetpack 导航组件 实时数据和 Firebase 我希望工作流程就像用户打开应用程序时一样 然后根据登录 注销状态导航到登录 配置文件片段 而不需要任何主片段或按钮 请 我的应用程序中没有主要片段 用户启动
  • 使用部分字符串匹配进行 Firebase 查询[重复]

    这个问题在这里已经有答案了 假设我有一个简单的 firebase 实时数据库结构 其中关键是username其值为userid 现在我想搜索userid by username 如果用户名匹配 这很容易 但如何获得部分匹配的答案 更清楚地说

随机推荐

  • 如何生成从集合中选取的 n 个唯一元素的列表?

    如何生成n个列表unique值 Gen List T 使用 ScalaCheck 从一组值 不是生成器 中获取 这个帖子 https stackoverflow com questions 5107281 generating permut
  • HDF5:如何将数据附加到数据集(可扩展数组)

    依照指示本教程 http www hdfgroup org ftp HDF5 current src unpacked examples h5 extend c 我尝试扩展我的 HDF5 数据集 代码如下 但是数据未正确写入数据集 数据集具
  • 刷新我的网站的 Google 搜索结果 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我使用模板设置了一个网站 标题是他们默认提供的 当我搜索网站的标题时 它出现在结果中 但使用的是默认标题 几天前更改后 我的网站仍然显示默
  • 实体框架 6 代码优先:将字符串属性的 unicode 设置为 false

    在我的模型中 我有一些用 StringLength 属性装饰的实体 StringLength 128 public string FirstName get set 我还通过这种方式禁用所有字符串属性的 unicode protected
  • 任何能够处理左递归的 PEG 解析器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 嗯 我知道可以重写语法来消除左递归 但这是一个非常无聊的过程 有时保持正确的关联性是非常不平凡的 是否有
  • 如何让主机网络与 docker swarm 模式配合使用

    From this PR https github com moby moby pull 32981 issuecomment 300883830最近被合并到 docker 的 17 06 候选版本中 我们现在支持带有 swarm 服务的主
  • 如何关闭 gcc 中的特定优化标志

    我想使用优化 O1 进行编译 但它打开了一个我不想使用的标志 我该如何关闭它 通常有一个等效的 否 标志 例如 fstrict aliasing可以通过以下方式关闭fno strict aliasing 检查 gcc 文档以获取更多标志
  • 嵌入式 cocos2d-js 应用程序可以回调 C++ 吗?

    我正在研究通过将 cocos2d js 作为视图嵌入现有 iOS 应用程序中来使用它的可能性 为了完成这项工作 我需要在 cocos2d 和周围的应用程序之间进行双向通信 经过一些初步调查 我确定可以致电in到 cocos 使用Script
  • C# 中的空参数检查

    在 C 中 是否有任何好的理由 除了更好的错误消息之外 向每个 null 不是有效值的函数添加参数 null 检查 显然 使用 s 的代码无论如何都会抛出异常 这样的检查会使代码变慢并且更难维护 void f SomeType s if s
  • BufferedReader.readLine() 不读取并挂起系统(等待)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions BufferedReader rea
  • \n\r 是什么意思?

    当通过 java 从伪终端读取时 我在文本中看到 n r 那个代表是什么 注意它不是我熟悉的 r n n是换行符 ASCII 代码 10 r是回车符 ASCII 代码 13 不同的操作系统使用这些字符的不同组合来表示文本行的结尾 类Unix
  • Silverlight 4 程序集共享问题

    我有一个引用 Silverlight 4 类库的 WPF NET 4 0 类库 SL 库编译得很好 但是当我编译 WPF 类库时 我得到 Error 2 Unknown build error Cannot resolve dependen
  • 如何快速动态加载经常重新生成的c代码?

    我希望能够动态生成 C 代码并将其快速重新加载到我正在运行的 C 程序中 我在Linux上 这怎么办 Linux 上的库 so 文件可以在运行时重新编译和重新加载吗 是否可以在不生成 so 文件的情况下对其进行编译 编译后的输出是否可以以某
  • 循环访问多个正则表达式提取器输出

    您能告诉我如何循环遍历返回多个值的正则表达式后处理器的结果吗 Example JSON 响应消息 reply code 111 status SUCCESS customerID 222 a b 333 44 4 s 555 666 777
  • AssertionError IDEA 输出中的字符编码

    我正在使用 IntelliJ IDEA 12 0 4 进行一些测试 当我使用 JUnit4 框架运行一个时 我的断言错误如下所示 java lang AssertionError Status should be expected true
  • Apple 拒绝,因为 UIBackgroundModes = location

    我提交了一个应用程序 它按照用户选择的固定时间间隔 5 分钟 10 分钟 30 分钟 1 小时 跟踪用户的位置 并将其发送到服务器 该应用程序也应该在后台运行 发送请求 我已将其声明为UIBackgroundMode location 我能
  • 如何将复杂的 SQL 查询转换为 Zend_Db_Select 语句?

    MySQL 网站有一个优秀的教程 http mikehillyer com articles managing hierarchical data in mysql 在数据库中存储分层数据 我正在尝试编写返回节点的直接子节点的查询 我不想只
  • 如何在android上创建永久后台服务

    我正在经历一场噩梦 试图在 android 上创建一个永久运行的简单后台服务 该服务将执行一些后台任务 例如池用户社交媒体和显示通知 因此它只需要一次用户交互 登录 之后应该能够永远运行直到最后一天 但这并没有发生 这是我的清单
  • viewflow.io:实现队列任务

    我想用以下用例来实现ViewFlow库 http viewflow io Problem 由用户启动的特定 Flow 的进程必须在执行 celery 作业之前在队列中等待 每个用户都有一个这些进程的队列 根据计划或手动触发 允许队列中的下一
  • 如何以编程方式在视图上同时应用平移和缩放动画

    如何在视图上应用带有缩放动画的平移动画 我必须将视图移动到另一个视图位置并同时缩小 如何将视图从其位置缩放到另一个视图位置 第二个视图不固定 startView 翻译的视图 finishView 动画结束的地方 代码 private voi