0
我想作一个动画,我有一个球的10张图像,我想做的事:动画,延缓
Image1
可见,所有其他图像隐藏Image2
可见的所有其他图像隐藏- ...
Image10
可见的所有其他图像隐藏
应我在一个动画(如何?)中做到这一点,或者我应该创建一个java方法showImage(String pathimage),它将显示位于pathimage的图像并隐藏其他图像?我可以把时间延迟的任何想法用
handler.postDelayed(new Runnable() {
public void run() { }
}
编辑,这里是我的代码 的问题是,运行()总是在什么似乎是一个无限循环调用。但我看不出哪里是我的错误
GAMEACTIVITY
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.....
ImageView image2 = (ImageView) findViewById(R.id.imageView3);
image2.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
myAsyncRunnable mar = new myAsyncRunnable(GameActivity.this);
mar.execute(null);
PhotoTask photoTask = new PhotoTask(camera,surfaceCamera,isPreview,holder,GameActivity.this);
photoTask.execute(null);
Log.w("GAMEACTIVITY","PHOTOTASK");
return false;
}
});
}
我的异步任务
public class myAsyncRunnable extends AsyncTask<Void, Boolean, Void> {
GameActivity gameactivity;
@Override
protected Void doInBackground(Void... params) {
pull();
return null;
}
public myAsyncRunnable(GameActivity gameactivity) {
super();
this.gameactivity = gameactivity;
}
public void pull() {
final ImageView image3 = (ImageView) gameactivity.findViewById(R.id.imageView3);
final int drawables[] = new int[] {R.drawable.pull2,R.drawable.pull3,R.drawable.pull4,R.drawable.pull5,R.drawable.pull6,R.drawable.pull7};
Runnable runnable = new Runnable() {
@Override
public void run() {
for (int i=0;i<drawables.length;i++) {
image3.setImageResource(drawables[i]);
gameactivity.handler.postDelayed(this, 500);
Log.w("asyncrunnable","run"+i);
}
}
};
gameactivity.handler.post(runnable);
}
}
那你知道我是怎么可能会做一个循环? 因为\t \t image3.setImageResource(R.drawable.pathimagei)当然不起作用,因为pathimagei不是可绘制的,但它指的字符串是.. – morg
好的,谢谢,现在我有一个问题,因为我认为这太慢了在主UI线程中执行。我有可运行的扩展AsyncTask吗? – morg
太慢?这是最低限度的工作。你只是设置图像。如果你想使用asynctask,你可能会在后台加载位图,然后将其设置在onPostExecute中。但是因为你的图片在res /那么你不会获得那么多(它应该已经很快) –