Tôi muốn highliht vừa được thêm vào ListView mục với một hiệu ứng tốt đẹp. Tôi nghĩ rằng đó là đơn giản & dễ dàng, nhưng tôi stumpled khi một vấn đề:TransitionDrawable: tự động đảo ngược quá trình chuyển đổi khi nó hoàn thành
Tôi muốn chơi TransitionDrawable hoạt hình và một khi nó hoàn thành - tua lại nó. Mục mới sẽ được highlited cho một thời điểm, và sau đó nó sẽ pha trộn với phần còn lại.
TransitionDrawable có các phương thức để phát hoạt ảnh về phía trước và phía sau, nhưng không có phương thức nào có thể được sử dụng để đồng bộ hóa. Tôi mong đợi một khả năng để xác định một callback để hoàn thành hình ảnh động, một cái gì đó như:
TransitionDrawable transition = (TransitionDrawable) view.getBackground();
transition.startTransition(500, new TransitionCompleteListener(){
public void completed()
{
transition.reverseTransition(500);
}
});
Nhưng không có gì như thế được hỗ trợ bởi lớp TransitionDrawable.
Sự cố là: Cách phát hoạt ảnh Chuyển đổi có thể hiển thị và khi kết thúc - ngay lập tức phát lại? Tôi đã có ý tưởng sử dụng lớp Timer
để trì hoãn việc thực hiện phần phía sau của hoạt ảnh, nhưng giải pháp này trông hơi quá nặng đối với một điều đơn giản như vậy.
Hoặc có lẽ tôi nên sử dụng thứ gì đó khác biệt mà TransitionDrawable? Tôi muốn tránh sử dụng các hình động bất động sản, vì tôi muốn hỗ trợ các thiết bị cũ hơn (và PA là avaialble từ Honeycomb).
Hmm ... Sử dụng tween có thể hoạt động nếu tôi đặt màu nền của toàn bộ ListView thành màu được sử dụng cho các mục hightlight và đặt màu của tất cả các hàng thành màu trắng. Sau đó, bằng cách thao tác giá trị alpha của một hàng cụ thể, tôi sẽ đạt được hiệu ứng highliht. nhưng ý tưởng về subclassing TransitionDrawable có vẻ tốt hơn, sạch hơn và nhiều hơn "đúng". Tôi đã xem xét nguồn của nó ngay bây giờ và có vẻ như khá dễ dàng để thực hiện những gì tôi cần. Tôi sẽ cập nhật câu hỏi của mình với một giải pháp khi tôi viết mã, bây giờ tôi cần quay lại Luận văn Thạc sĩ của mình (không liên quan đến điều này - đó là một dự án sở thích). Bạn giành chiến thắng tiền thưởng. – user1234567