Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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_Android_Multithreading_Android Animation_Thread Sleep - Fatal编程技术网

Java 无法观察我的视图动画

Java 无法观察我的视图动画,java,android,multithreading,android-animation,thread-sleep,Java,Android,Multithreading,Android Animation,Thread Sleep,我想做的是,将一个对象从一个位置移动(平移)到另一个位置,但具体使用以下方法。而且,它在某种程度上是按需要工作的,但现在发生的是,我无法看到实时变化 屏幕在一段时间内显示为空白,然后当对象到达android屏幕上的最终坐标时,显示该对象 我想看到实时变化。你能告诉我,我哪里出错了吗 Java文件 package com.example.actualanimation; import android.app.Activity; import android.os.Bundle; import a

我想做的是,将一个对象从一个位置移动(平移)到另一个位置,但具体使用以下方法。而且,它在某种程度上是按需要工作的,但现在发生的是,我无法看到实时变化

屏幕在一段时间内显示为空白,然后当对象到达android屏幕上的最终坐标时,显示该对象

我想看到实时变化。你能告诉我,我哪里出错了吗

Java文件

package com.example.actualanimation;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;

public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView im=(ImageView)findViewById(R.id.img_id);

        for(int i=0;i<100;i++)
        {
            im.setY(im.getY()+1);
            try
            {
                Thread.sleep(10);
            }
            catch(Exception e)
            {
                System.out.print("Done");
            }
        }
    }


}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.actualanimation.MainActivity" >

   <ImageView 
       android:layout_height="wrap_content"
       android:layout_width="wrap_content"
       android:id="@+id/img_id"
       android:src="@drawable/ic_launcher"/>

</RelativeLayout>
package com.example.actualanimation;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.widget.ImageView;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView im=(ImageView)findViewById(R.id.img_id);

对于(int i=0;i不使用视图位置来设置视图动画。在Android中设置视图动画所需的只是一个定义xml文件,然后在这里描述的
startAnimation
视图方法中使用它:。

您正在谈论tween动画。我知道这种类型的动画。因此,即使在我的问题中,我也提到了什么是t这样输出的可能原因是什么?然后你可以使用timer类来设置视图位置的动画,以摆脱Thread.sleep()。你在主UI线程上调用Thread.sleep(),这真是个糟糕的主意。所有UI都绘制在那里,你允许它因为睡眠而什么也不做。