Tôi phải làm động một bộ đếm thời gian đếm ngược và tôi đang làm nó bằng cách làm hoạt hình nền của một ImageView sử dụng AnimationDrawable (mỗi hình ảnh có các lát theo vòng tròn loại bỏ). Vấn đề là người dùng có khả năng tạm dừng hoạt ảnh này, vì vậy tôi phải tải lại hoạt ảnh nhưng sau đó vấn đề sẽ xuất hiện. Tôi đã thử thiết lập các hình ảnh động để null, thiết lập nền của ImageView để null, thiết lập khả năng hiển thị của hình ảnh động, nhưng thực tế không có gì giúp, bởi vì số khung vẫn giữ nguyên. Tôi phải tìm một cách giải quyết để xóa tất cả các khung hình và thêm các khung hình mới hoặc để đặt lại toàn bộ hoạt ảnh về trạng thái mặc định.Làm thế nào để thiết lập lại AnimationDrawable
Bước 1 - khởi tạo các hình ảnh động (bắt đầu từ chỉ số khung là 0)
timerView.setBackgroundResource(R.drawable.timer_switch);
timerAnimation = (AnimationDrawable)timerView.getBackground();
System.out.println("Number of frames: " + timerAnimation.getNumberOfFrames());
for (int frameIndex = startingFrameIndex; frameIndex < 60; frameIndex++) {
if (frameIndex < 10) {
uri = "drawable/timer_0000" + frameIndex;
} else {
uri = "drawable/timer_000" + frameIndex;
}
imageResourceId = getResources().getIdentifier(uri, null, getPackageName());
timerAnimation.addFrame(getResources().getDrawable(imageResourceId), timerImageFrameDuration);
}
Bước 2 - đây là một phần khó khăn mà tôi không biết phải làm gì. Những điều tôi đã thử:
timerAnimation.stop();
timerAnimation.setCallback(null);
timerAnimation.setVisibility(true, false);
timerAnimation = null;
Bước 3 - sau khi gọi bước 2 Tôi gọi lại bước 1, nhưng Sys.out vẫn hiển thị 60 là số khung hiện tại. (chỉ mục bắt đầu ở đây được đặt thành khung ẩn cuối cùng khi nhấn nút tạm dừng.)
Bất kỳ ý tưởng nào đều được hoan nghênh.
Cảm ơn
thể ViewCompat.jumpDrawablesToCurrentState giúp đỡ: http://developer.android. com/reference/android/support/v4/view/ViewCompat.html # jumpDrawablesToCurrentState (android.view.View)? –