Android 触摸秤按钮

2023-11-22

我知道如何将按钮缩放到确定的值,但是有没有办法在用户触摸按钮时每次增加/减小按钮大小? 像这样的东西:

Button myButton = (Button)findViewById(R.id.myButton);
    myButton.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                // Some timer action here or is there a better way?
                v.setScaleX(v.getScaleX() + 0.1f);
                v.setScaleY(v.getScaleY() + 0.1f);
                return true;
            }
            else if(event.getAction() == MotionEvent.ACTION_UP) {
                v.setScaleX(1);
                v.setScaleY(1);
                return true;
            }

            return false;
        }
    });

其他想法 - 不起作用:

    myButton.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                Timer timer = new Timer();
                TimerTask timerTask = new TimerTask() {
                    @Override
                    public void run() {
                      myButton.setScaleX(myButton.getScaleX() + 0.1f);
                      myButton.setScaleY(myButton.getScaleY() + 0.1f);
                    }
                };
                while(event.getAction() != MotionEvent.ACTION_UP){ //Seems to be an infinite loop
                    timer.schedule(timerTask, 100);
                }

            }
            else if(event.getAction() == MotionEvent.ACTION_UP) {
                v.setScaleX(1);
                v.setScaleY(1);
            }

            return false;
        }
    });

有没有办法用 xml(可绘制和动画)完成所有事情?


请尝试以下操作:

@Override
public boolean onTouch(View v, MotionEvent motionEvent) {
    int action = motionEvent.getAction();
    if (action == MotionEvent.ACTION_DOWN) {
        v.animate().scaleXBy(100f).setDuration(5000).start();
        v.animate().scaleYBy(100f).setDuration(5000).start();
        return true;
    } else if (action == MotionEvent.ACTION_UP) {
        v.animate().cancel();
        v.animate().scaleX(1f).setDuration(1000).start();
        v.animate().scaleY(1f).setDuration(1000).start();
        return true;
    }

    return false;
}

这应该可以解决问题;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 触摸秤按钮 的相关文章

随机推荐

  • 更改 .JAR 文件的图标

    如何更改图标 JAR我要分发的文件 我已经更改了程序运行时显示的图标 但我想更改环境 例如Windows XP 中的图标 即文件本身的图标 我用谷歌搜索 但我能找到的最好的就是转换 JAR to a EXE 这不是最好的选择 图标是操作系统
  • Espresso 测试中的模拟意图附加

    我正在尝试启动Activity在浓缩咖啡中 问题是我想把模拟的额外内容添加到Intent我用来启动Activity 这是一个例子 RunWith AndroidJUnit4 class public final class NiceActi
  • 如何在 iOS 应用程序中每 n 分钟更新一次后台位置?

    我正在寻找一种在我的 iOS 应用程序中每 n 分钟更新一次后台位置的方法 我使用的是 iOS 4 3 该解决方案应该适用于未越狱的 iPhone 我尝试 考虑了以下选项 CLLocationManager startUpdatingLoc
  • 支持 Eclipse maven 的 Web 应用程序引用工作区项目,但在运行 Tomcat 服务器时不会部署这些项目

    我有一个 Web 应用程序 Eclipse 的动态 Web 应用程序 它使用 Maven m2e wtp 进行构建和依赖项管理 这个 Web 应用程序的 POM 引用了我工作区中的一些其他项目 这些项目恰好也是使用 Maven 构建的 Ec
  • 如何删除单击按钮时出现的点

    我正在使用 IE9 当我单击按钮时出现虚线 请建议如何删除该虚线 对于 Internet Explorer 9 您可以使用以下命令 a active a focus outline none ie dummy expression this
  • 扩展 jsplumb.draggable 拖动行为

    我确信我在这里遗漏了一些东西 但我想使用附加到端点的 jsPlumb draggable 类属性来扩展 div 的拖动行为 同时保留 jsPlumb draggable 属性 我想要这样的东西 改编自这个SO dragcodes dragg
  • 如何使用 Google Chrome 扩展中的 Service Worker 修改 HTTP 响应正文?

    现在 Google Chrome 扩展可以注册服务人员 我如何使用它们来修改来自所有主机的 HTTP 响应 例如通过替换所有出现的cat with dog 下面是来自的示例代码克雷格 拉塞尔 但是如何在 Chrome 扩展程序中使用它并将其
  • 集群上的 Google 地图 InfoWindow

    我有一张带有很多标记的地图 所有这些标记都有一个信息窗口 使用标记簇库 http google maps utility library v3 googlecode com svn trunk markerclusterer src mar
  • Roslyn 中的委托缓存行为发生变化

    给出以下代码 public class C public void M var x 5 Action
  • 在 numpy 中索引 3d 网格数据的球形子集

    我有一个带有坐标的 3d 网格 x linspace 0 Lx Nx y linspace 0 Ly Ny z linspace 0 Lz Nz 我需要在位置 x0 y0 z0 的某个半径 R 内索引点 即 x i y j z k N i
  • 使用 Django-storages 删除 Amazon S3 中的文件

    在我的 Django 项目中 我使用 Django storageS 将媒体文件保存在我的 Amazon S3 中 我跟着这个tutorial 我也使用 Django rest framework 这对我来说效果很好 我可以上传一些图像 并
  • 离线观看带字幕的 HTML5 视频

    我正在尝试实现一个 HTML5 视频播放器 用于使用本地 HTML 文件观看本地视频 并且我希望具有 VTT 字幕和字幕功能 我目前正在使用VideoJS进行播放 但是 我的问题不是具体实施的 当我尝试使用 VTT 文件时 收到跨域错误 指
  • IQueryable、List、IEnumerator 之间的区别?

    我想知道 IQueryable List IEnumerator 之间有什么区别以及何时应该使用它们 例如 当使用 Linq to SQL 时 我会这样做 public List
  • 将 Google 表中的日期区域设置从公历转换为 Jalali 日历

    我想知道谷歌表格中是否可以使用函数将公历转换为贾拉利历 事实上 我有一些日期 例如 February 20 2021 4 30 AM 我需要以 Jalali 格式 没有时间 在其前面的单元格中显示此日期 即 1399 12 02 or Es
  • Node.js 什么时候会阻塞?

    我已经使用 Node js 一段时间了 我刚刚意识到它可能会阻塞 我就是无法理解 Node js 在什么情况下会发生阻塞 因此 Node js 是单线程的 因为 i Javascript 是并且 ii 避免了所有多线程陷阱 要同时做很多事情
  • Gitlab 与 Github 相比有何不同?

    我试图从经验丰富的开发人员的角度来理解两者的优缺点 当然 Github 是两者中使用更广泛的一个 但如果有人能概括性地解释一下他们发现其中哪一个更好 缺乏什么 那就太好了 顺便说一句 我现在使用 Github Gitlab 是一个自托管的
  • 退出iPhone应用程序的正确方法?

    我正在编写一个 iPhone 应用程序 由于某些用户操作 我需要强制它退出 清理应用程序分配的内存后 调用什么适当的方法来终止应用程序 在 iPhone 上 没有退出应用程序的概念 导致应用程序退出的唯一操作是触摸手机上的 主页 按钮 而开
  • Azure Active Directory 是否具有 OAuth/OpenID Connect 令牌自省端点?

    Azure Active Directory 是否具有自省端点 如中定义 RFC7662 用于验证 OpenID Connect 或 OAuth 访问令牌 否 您可以通过以下方式检查支持的所有端点OpenID 提供商配置对于 Azure A
  • 如何计算直方图的标准差? (Python、Matplotlib)

    假设我有一个数据集并使用 matplotlib 绘制该数据集的直方图 n bins patches plt hist data normed 1 如何使用以下公式计算标准差n and bins价值观hist 回报 我目前正在这样做来计算平均
  • Android 触摸秤按钮

    我知道如何将按钮缩放到确定的值 但是有没有办法在用户触摸按钮时每次增加 减小按钮大小 像这样的东西 Button myButton Button findViewById R id myButton myButton setOnTouchL