Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何创建一个缓慢移动的按钮,就像它是动画一样?_Java - Fatal编程技术网

Java 我如何创建一个缓慢移动的按钮,就像它是动画一样?

Java 我如何创建一个缓慢移动的按钮,就像它是动画一样?,java,Java,我想要一个按钮,在点击时以增量移动(有点像动画)。此代码导致按钮移动,但它仅显示开始和结束位置(而不是中间的增量)。我现在更喜欢使用与当前代码最相似的代码,但我也愿意学习未来的新想法 我如何创建一个缓慢移动的按钮,就像它是动画一样 public void onButtonClick3(final View view) throws InterruptedException { for (int i=0; i<10; i++) { long timer1

我想要一个按钮,在点击时以增量移动(有点像动画)。此代码导致按钮移动,但它仅显示开始和结束位置(而不是中间的增量)。我现在更喜欢使用与当前代码最相似的代码,但我也愿意学习未来的新想法

我如何创建一个缓慢移动的按钮,就像它是动画一样

 public void onButtonClick3(final View view) throws InterruptedException {

        for (int i=0; i<10; i++) {
        long timer1 = System.currentTimeMillis();
        long timer2 = System.currentTimeMillis();


                    ViewGroup.MarginLayoutParams vlp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();

            do {
                sleep(300);
                timer2 = System.currentTimeMillis();
            }
            while (timer1 + 1 > timer2);


            int leftMargin = vlp.leftMargin;
            int topMargin = vlp.topMargin;

            ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
            params.width = 200;
            params.leftMargin = leftMargin + 100;
            params.topMargin = topMargin + 100;
            view.setLayoutParams(params);
        }        
    }
public void onButtonClick3(最终视图)引发中断异常{
对于(int i=0;i timer2);
int leftMargin=vlp.leftMargin;
int topMargin=vlp.topMargin;
ViewGroup.MarginLayoutParams params=(ViewGroup.MarginLayoutParams)view.getLayoutParams();
参数宽度=200;
params.leftMargin=leftMargin+100;
参数topMargin=topMargin+100;
view.setLayoutParams(参数);
}        
}

谢谢

这似乎是JavaFX,因此我不确定是否有事件调度线程,但我假设有一个。因此,您可能想要制作动画(它是一个动画,而不仅仅是一种)在工作线程中,为了不阻止处理显示更新的线程,这似乎是您看不到中间位置的原因。我不认为四处移动控件是一个好主意-这就是布局管理器的作用。无论如何,请看。如果您需要更多帮助,请发布一篇文章。我的大部分代码都是在VBA Excel(我正在制作游戏的地方)中编写的。我正在自学Java,尝试将我的一些游戏转换成Android设备的应用程序。最终,我希望有丰富的Java经验来转换我所有的游戏,但现在我只希望制作一些代码,这些代码与我在VBA中已经完成的代码最为相似。如果我改变的代码方法与VBA代码相差太远,那么它可能会在未来带来编码挑战。谢谢你的评论。尽管如此,我不确定我是否取得了任何进展。我认为你没有完全理解我。你应该用一个(阅读链接)来说明你的问题。我们需要能够复制粘贴它,并运行它,并看到自己的问题。这样我们可以推荐一个解决方案。另外,使用@username在评论中回复。