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 /那麼你不會獲得那麼多(它應該已經很快) –