我嘗試做一個幻燈片,當我點擊一個按鈕時,ImageView將顯示所有的圖片/整數圖片[]可以一次一個連續以一個設定的間隔速度,我將從單選按鈕(3選擇)在屏幕上。如何使用AsyncTask以設定的時間間隔逐個加載多個圖像到ImageView?
我嘗試在沒有AsyncTask的情況下一次一個地顯示圖像,但是它只顯示最後一張圖像,並且不顯示每張圖片之間的時間延遲。
for (Integer p:pics)
{
iv.SetImageResource(p);
SystemClock.sleep(500);
}
下面的代碼是我到目前爲止,我需要幫助上的AsyncTask的底部,如何在設置間隔時間達到一個個圖像
public class PhotoAlbum extends Activity
{
static final int intSlow = 3000;
static final int intMed = 1000;
static final int intFast = 500;
ImageView iv;
int interval;
Integer pics[] = {
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
R.drawable.img6
};
RadioButton rbSlow;
RadioButton rbMedium;
RadioButton rbFast;
Button mAutoButton;
private int currentImage = 0;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo_album);
iv = (ImageView) findViewById(R.id.imageView);
iv.setImageResource(pics[currentImage]);
rbSlow = (RadioButton) findViewById(R.id.radioSlow);
rbMedium = (RadioButton) findViewById(R.id.radioMedium);
rbFast = (RadioButton) findViewById(R.id.radioFast);
mAutoButton = (Button) findViewById(R.id.buttonAuto);
mAutoButton.setOnClickListener(AutoButtonChangeImageListener);
}
private View.OnClickListener AutoButtonChangeImageListener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
AutoPicsTask.execute();
}
};
private class AutoPicsTask extends AsyncTask<Integer, Void, Integer>
{
if (rbSlow.isChecked())
{
interval = intSlow;
} else if (rbMedium.isChecked())
{
interval = intMed;
} else
{
interval = intFast;
}
@Override
protected Integer doInBackground(Integer... params)
{
for (Integer p : pics)
{
SystemClock.sleep(interval);
}
return null;
}
protected void onPostExecute(Integer ...value) {
iv.setImageResource(value[0]);
}
}
}
對不起,我對於AsyncTask來說真的很新。
這是一個使用我們迄今爲止學到的作業。 我們還沒有學習如何使用「處理程序」,計時器,runOnUiThread(),創建一個線程,void run(),postDelayed(),動畫,我看到一些建議用於一次實現一個圖像。
在此先感謝。
'謝謝。不要說你在課程中學到了這種壞習慣。 – greenapps