Android:如何动态改变ImageView的位置?
问题描述:
我希望我的箭头能够动态地以一定的毫秒数延迟左右移动。任何线索?Android:如何动态改变ImageView的位置?
这里是我的代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;
public class PlayWithGraphics extends Activity {
/** Called when the activity is first created. */
public final int delay = 2500;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageView iv = (ImageView)findViewById(R.id.iv);
iv.setBackgroundResource(R.drawable.back_two);
new Handler().postDelayed(new Runnable(){
public void run(){
//iv.setPadding(30, 0, 10, 0);
}
}, delay);
}
}
答
您既可以使用一个转换的动画,并更新onRepeatListener
移动或把你的图像中的RelativeLayout
,并定期更改其利润率。
现在你给2点建议:1。 使用翻译动画在onRepeatListener更新的移动或 2.把你的图像中的RelativeLayout和定期 改变其保证金数1:你有一个代码例如,您可以在这里发布或在网上推荐一个教程? 对于编号2:id在运行时没有所需的方法。我用setPadding但它没有工作。 setMarginLeft和setMarginRight仅在设计时在XML布局中可用。 – 2010-08-02 10:06:25
好,关于方法2,实际上不是,这些方法聚集成一个,你可以从'RelativeLayout'在'LayoutParams'中找到。您只需使用后台线程进行计数,并且每隔一段时间您都会更改边距。今天下午我会去看看,并尝试回来一些代码/截图。尽管我认为翻译动画是最简单的方法......您可以参考ApiDemo中的翻译动画。或者简单地创建你自己的实例。我会再看看,稍后再给你更多细节。 – Sephy 2010-08-02 11:32:33