2017-07-18 17 views
0

我有下面的代码,但图像只在循环完成后更新,而不是在循环期间,就像在普通的java中一样 - 在屏幕上移动图像,我增加了X位置。无论如何在循环期间进行图像更新? 再次感谢/Android - 可能在循环中更新图像?

public class MainActivity extends Activity { 
    Button button; 
    ImageView image; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     addListenerOnButton(); 
    } 

    public void addListenerOnButton() { 
     image = (ImageView) findViewById(R.id.imageView1); 

     button = (Button) findViewById(R.id.btnChangeImage); 
     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       //image.setImageResource(R.drawable.android); 

       int X = 0; 
       int Y = 0; 
       //for(;;) { 
       for (int i = 0; i < 50 ; i++) { 
        image.setX(i); 
        image.setY(Y); 
        setContentView(R.layout.main); 
        image = (ImageView) findViewById(R.id.imageView1); 
        image.setImageResource(R.drawable.android3d); 
       } 
      } 
     }); 
    } 
} 
+0

删除'的setContentView(R.layout.main); image =(ImageView)findViewById(R.id.imageView1)'lines then try –

+2

使用animator https://developer.android.com/guide/topics/graphics/prop-animation.html –

回答

0

尝试这种情况:

import android.os.Handler; 


for (int i = 0; i < 50 ; i++) {  
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
       image.setX(i); 
       image.setY(Y); 
       setContentView(R.layout.main); 
       image = (ImageView) findViewById(R.id.imageView1); 
       image.setImageResource(R.drawable.android3d); 
     } 
    }, 200); 
} 
+0

谢谢你的回复。新的Handler()。post(new Runnable(){被突出显示为红色,如图所示= https://postimg.org/image/nafrsd7vr/ –

+0

再次感谢您的回复,它仍然不会在循环期间更新 - 我可能会必须探索一些其他选择。 –