編輯:關於Android編程
在項目開發中,往往 要用到圖片播放的效果,今天就用TimerTask和ImageView是實現簡單的圖片播放效果。
其中,TimerTask和Timer結合一起使用,主要是利用TimerTask的迭代延時等時間段處理事件的機制。
具體實例如下:
1.layout xml代碼
package com.example.myimageplaydemo; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity implements OnClickListener { private Button startBtn, stopBtn,restartBtn; private ImageView imageIv; private Timer timer; private TimerTask timerTask; private int count = 0; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { int myCount = Integer.valueOf(msg.obj.toString()); switch (msg.what) { case 1: setImageViewSrc(myCount); break; case 2: stopTimer(); break; case 3: setImageViewSrc(myCount); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onStart() { super.onStart(); startBtn = (Button) this.findViewById(R.id.my_start_btn); stopBtn = (Button) this.findViewById(R.id.my_stop_btn); restartBtn = (Button) this.findViewById(R.id.my_restart_btn); imageIv = (ImageView) this.findViewById(R.id.image_iv); startBtn.setOnClickListener(this); stopBtn.setOnClickListener(this); restartBtn.setOnClickListener(this); } @Override public void onStop() { super.onStop(); stopTimer(); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.my_start_btn: if (timerTask == null) { timer = new Timer(); //延遲一秒,迭代一秒設置圖片 timerTask = new TimerTask() { @Override public void run() { ++count; handler.sendMessage(handler.obtainMessage(1, count)); } }; timer.schedule(timerTask, 1000, 1000); } else { handler.sendMessage(handler.obtainMessage(1, count)); } break; case R.id.my_stop_btn: handler.sendMessage(handler.obtainMessage(2, count)); break; case R.id.my_restart_btn: if (timerTask == null) { count = 0 ; timer = new Timer(); timerTask = new TimerTask() { @Override public void run() { count++; handler.sendMessage(handler.obtainMessage(3, count)); } }; timer.schedule(timerTask, 1000, 1000); } else { handler.sendMessage(handler.obtainMessage(3, 0)); } } } /** * 根據count循環對ImageView設置圖片 * @param count */ private void setImageViewSrc(int count) { int myCount = count % 7; switch (myCount) { case 0: imageIv.setImageResource(R.drawable.onea); break; case 1: imageIv.setImageResource(R.drawable.oneb); break; case 2: imageIv.setImageResource(R.drawable.onec); break; case 3: imageIv.setImageResource(R.drawable.oned); break; case 4: imageIv.setImageResource(R.drawable.onee); break; case 5: imageIv.setImageResource(R.drawable.onef); break; case 6: imageIv.setImageResource(R.drawable.oneg); break; } } /** * 銷毀TimerTask和Timer */ private void stopTimer(){ if (timerTask != null) { timerTask.cancel(); timerTask = null; } if(timer != null){ timer.cancel(); timer = null; } } }
if (timerTask == null) { timer = new Timer(); //延遲一秒,迭代一秒設置圖片 timerTask = new TimerTask() { @Override public void run() { ++count; handler.sendMessage(handler.obtainMessage(1, count)); } }; timer.schedule(timerTask, 1000, 1000); } else { handler.sendMessage(handler.obtainMessage(1, count)); }timerTask延遲一秒後再每秒設置不一樣的圖片,根據count進行循環的播放。
源碼地址:http://download.csdn.net/detail/a123demi/7736643
ZXing是谷歌的一個開源庫,可以用來生成二維碼、掃描二維碼。本文所介紹的是第一部分。首先上效果圖:ZXing相關各種文件官方下載地址:https://github.co
最近項目中要做一個類似天天動聽歌曲自動滾動行數的效果。首先自己想了下Android要滾動的那就是scroller類或者scrollto、scrollby結合了,或者vie
本文實例講述了Android編程實現網絡圖片查看器和網頁源碼查看器。分享給大家供大家參考,具體如下:網絡圖片查看器清單文加入網絡訪問權限:<!-- 訪問intern
本示例演示在Android中實現圖片左右滑動效果。關於滑動效果,在Android中用得比較多,本示例實現的滑動效果是使用ViewFlipper來實現的,當然也可以使用其它