簡體   English   中英

我需要設置setImageResource,暫停並更改為其他setImageResource

[英]I would need to Set setImageResource, pause and change to different setImageResource

我試圖設置圖像並將其稍作停頓(例如閃爍)后將其更改為其他圖像; 並且它應該在應用啟動后自動啟動。

public class MainActivity extends ActionBarActivity {

ImageView image1;

private void flash(){
    Thread flashing=new Thread(){
        public void run(){
            try {
                image1.setImageResource(R.drawable.red_circle);
                sleep(1000);
                image1.setImageResource(R.drawable.white_circle);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    };
    flashing.start();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    image1=(ImageView)findViewById(R.id.imageView1);

    flash();

}

}這會導致錯誤和應用程序停止。

試試這個:

ImageView slide;
private Handler handler;
private int showPic = -1;// default value should be -1
Integer[] ids = new Integer[] { R.drawable.red_circle, R.drawable.white_circle};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.slide_show);
    slide = (ImageView) findViewById(R.id.slide);
    handler = new Handler();
    handler.postDelayed(imageUpdate, 10);
}


private void setNextImage() {
    showPic++;
    if (showPic == ids.length) {
        showPic = -1;
        handler.removeCallbacks(imageUpdate);
    } else {
        slide.setImageResource(ids[showPic]);
        handler.postDelayed(imageUpdate, 1000);
    }
}

Runnable imageUpdate= new Runnable() {
    @Override
    public void run() {
        setNextImage();
    }
};  

更新:如果要在圖像上循環,可以將setNextImage()方法更改為此,還要注意,我將showPic的默認值更改為-1(如果要循環,則默認值應為-1):

private void setNextImage() {
    showPic++;
    if (showPic == ids.length) {
        showPic = 0;
    }
    slide.setImageResource(ids[showPic]);
    handler.postDelayed(imageUpdate, 1000);
}  

onDestroy()方法中刪除callBack:

public void onDestroy(){
     handler.removeCallback(imageUpdate);
     super.onDestroy();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM