android實戰專案六imageview做一個幻燈片效果

tangsilian發表於2016-04-14

imageview做一個幻燈片效果

這是從本地獲取圖片的方法,在Android4.0之後,增加了一些新特性,也增加了一些限制。其中有一個限制就是不能在主執行緒中訪問網路,必須另開一條執行緒訪問。但是這裡又存在另外一個問題,在子執行緒中,無法直接操作UI控制元件的屬性。(這個以後再做補充,挖坑~~)

話不多說,直接上程式碼

public class NewThread6 extends Activity {
    private ImageView image1;
    //定義一個int陣列來存放圖片,在R檔案中圖片是以int形式存在的
    int[] images = new int[] { R.drawable.ic_launcher, 
            R.drawable.actionbar_add_icon, 
            R.drawable.actionbar_icon,
            R.drawable.actionbar_more_icon,
            R.drawable.actionbar_search_icon, };
    //定義一圖片計數器
    int currentImg = 0;
    //定義一個handler來進行隔時間操作
    private Handler handler = new Handler();
//新建一個runnable物件
    private Runnable myRunnable = new Runnable() {
        public void run() {
       //每隔1秒切換一次
            handler.postDelayed(this, 1000);

            if (currentImg >= 4) {
                currentImg = -1;
            }
            // 改變ImageView裡顯示的圖片
            image1.setImageResource(images[++currentImg]);

        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        image1 = (ImageView) findViewById(R.id.image1);
         //初始化時顯示第一張圖片  
        image1.setImageResource(images[0]); 
        Button btn = (Button) findViewById(R.id.btn1);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //將請求提交給runnable
                handler.post(myRunnable);

            }
        });
    }

網路版之後再補充

相關文章