- public class MainActivity extends Activity {
- /**
- * 实验思路: 目标:每个10秒修改ImageView控件的图片,实现图片的动态切换。
- * 思路:利用Handler消息传递机制,在主线程中创建一个Handler对象,在子线程中每隔10秒用Handler对象向主线程发送消息。
- */
- int imageSrc[] = { R.drawable.img1, R.drawable.img2,
- R.drawable.img3 };
- int resId = 0;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- final ImageView iv = (ImageView) findViewById(R.id.imageView);
- final Handler myHandler = new Handler() {
-
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- // 忘记了msg.what这个语句,值为1233代表什么呢,还是自己随便取的
- if (msg.what == 0x1233) {
- // 有点难,逻辑思维,修改图片,循环加1
- // 每次加1,但不能超过length,
- //iv.setImageResource(resId);
- //resId = resId++ % imageSrc.length;
- iv.setImageResource(imageSrc[resId++
- % imageSrc.length]);
- Log.i("my.android", ""+resId);
- }
- }
- };
- new Timer().schedule(new TimerTask() {
- @Override
- public void run() {
- myHandler.sendEmptyMessage(0x1233);
- Log.i("my.android", "执行run方法");
- }
- }, 0, 1000);
- }
- }
复制代码 //iv.setImageResource(resId);
//resId = resId++ % imageSrc.length;
iv.setImageResource(imageSrc[resId++
% imageSrc.length]);
Log.i("my.android", ""+resId);
我用注释的的那两句话,log结果,resId每次都是0,而在没注释的那一句,却正常,在循环变化,这是为什么呢,我觉得一样啊?
|