如果写成这样,点一下按钮,当然能出现图片(不动的):
public class TimerChange extends Activity {
private Button mButton;
private ImageView mImageView;
private static int[] bgs = { R.drawable.girl001, R.drawable.girl002,
R.drawable.girl003, R.drawable.girl004 };
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mImageView = (ImageView) findViewById(R.id.ImageView01);
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mImageView.setImageDrawable(getResources().getDrawable(
bgs[0]));
}
});
}
}
可是我想让他动(每隔3秒钟就换一次图片),于是我写成这样:
public class TimerChange extends Activity {
private Button mButton;
private ImageView mImageView;
private static int[] bgs = { R.drawable.girl001, R.drawable.girl002,
R.drawable.girl003, R.drawable.girl004 };
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mImageView = (ImageView) findViewById(R.id.ImageView01);
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
int r = rand();
mImageView.setImageDrawable(getResources().getDrawable(
bgs[r]));
}
};
timer.schedule(task, 3000L, 3000L);
}
});
}
private int rand() {
int result = 0;
result = (int) (Math.random() * 4);
return result;
}
}
为什么这样写的话,点击按钮就什么反应都没有阿?(也没出现异常阿?)
我该怎么实现换图片阿?
请高手指点下!
6 个解决方案
#1
Timer 没用过, 使用 Handler 吧, 应该可以的
#2
其实你可以用toast来显示图片。。
用sleep()来控制时间。。
用sleep()来控制时间。。
#3
正途应该是用service吧,每隔3秒通知activity更换图片。
ps:有android专版
ps:有android专版
#4
toast可以显示图片么?
#5
Toast当然可以
#6
因为android里不可以在另外一个线程中操作当前view的吧。总之涉及到线程了 用handler。
#1
Timer 没用过, 使用 Handler 吧, 应该可以的
#2
其实你可以用toast来显示图片。。
用sleep()来控制时间。。
用sleep()来控制时间。。
#3
正途应该是用service吧,每隔3秒通知activity更换图片。
ps:有android专版
ps:有android专版
#4
toast可以显示图片么?
#5
Toast当然可以
#6
因为android里不可以在另外一个线程中操作当前view的吧。总之涉及到线程了 用handler。