Android.ImageButton: 背景图片循环更换
Android.ImageButton: Background Image cycling replacement
有一组 PNG 文件可以模拟绘制 Ok 勾号。请看图片。
我只附上了其中的 3 个,以便您更好地理解。
在 C# 中,我使用了几种技术:
- Thread + delegate.. 其中我 运行 Thread with Sleep and Invoke the delegate to update button back image.
- 后台工作者 - 与 1 非常相似
- 计时器.. 运行 计时器和 onTick 进行替换。
我在 Android 中尝试了 Timer。没用.. 我想是因为 Android 中的 Timer 实际上也是另一个 Thread 并且更改 View 属性 onTick 会导致 App crush。
也没有线程安全代表..
我知道动画问题,我用它来移动相同的按钮图像 left-right(抖动效果)..
所以,请告诉我:
1) 如何使用 Animation 包以我的方式为图像按钮设置动画(替换背景图像)?
2) 我听说过有关延迟 post 定时器事件的消息。但我找不到它的好样本。请简要解释一下该技术。
谢谢
结果代码(答案)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_begin_test);
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
SetNextImage();
handler.postDelayed(this, 50);
}
};
handler.postDelayed(runnable, 50);
}
imageView.postDelayed(Runnable r, long timeMilliSec)
试试这个,它会在您设置的时间后被调用,然后在 运行 方法中您可以更改图像和 post 第三张图像的另一个延迟。
有一组 PNG 文件可以模拟绘制 Ok 勾号。请看图片。 我只附上了其中的 3 个,以便您更好地理解。
在 C# 中,我使用了几种技术: - Thread + delegate.. 其中我 运行 Thread with Sleep and Invoke the delegate to update button back image. - 后台工作者 - 与 1 非常相似 - 计时器.. 运行 计时器和 onTick 进行替换。
我在 Android 中尝试了 Timer。没用.. 我想是因为 Android 中的 Timer 实际上也是另一个 Thread 并且更改 View 属性 onTick 会导致 App crush。 也没有线程安全代表.. 我知道动画问题,我用它来移动相同的按钮图像 left-right(抖动效果)..
所以,请告诉我:
1) 如何使用 Animation 包以我的方式为图像按钮设置动画(替换背景图像)? 2) 我听说过有关延迟 post 定时器事件的消息。但我找不到它的好样本。请简要解释一下该技术。
谢谢
结果代码(答案)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_begin_test);
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
SetNextImage();
handler.postDelayed(this, 50);
}
};
handler.postDelayed(runnable, 50);
}
imageView.postDelayed(Runnable r, long timeMilliSec)
试试这个,它会在您设置的时间后被调用,然后在 运行 方法中您可以更改图像和 post 第三张图像的另一个延迟。