2011-08-19 36 views
39

Làm thế nào để xóa ColorFilter hoặc setColorFilter trên một giao diện được hoàn tác?xóa ColorFilter/undo setColorFilter

+1

Vui lòng không đưa ra các câu hỏi có tiếng ồn để đánh bại việc phát hiện tiêu chuẩn chất lượng của chúng tôi. – Kev

Trả lời

57

Bạn đã thử đặt nó thành null?

Theo Android Documentation:

public void setColorFilter (ColorFilter cf)

Từ: API Level 1 Áp dụng một colorfilter tùy ý để hình ảnh. thông số

cf các colorfilter để áp dụng (có thể được null)

+6

ouch. view.setColorFilter (0xFFFFFFFF, Mode.MULTIPLY); cũng làm việc –

+17

Không hoạt động đúng trên kẹo. Bạn nên sử dụng 'clearColorFilter()' thay vì –

+0

clearColorFilter() làm cho chính xác cùng một cuộc gọi của setColorFilter (null) trong tất cả các phiên bản Android hiện có, vì vậy bạn không phải ở phần thứ hai của câu lệnh của bạn :) – Vadim

97

Bạn có thể gọi clearColorFilter() cho cùng một đối tượng mà bạn gọi là setColorFilter(). Phương pháp này tương đương với setColorFilter(null) và được cho là dễ đọc hơn phương pháp sau.

0

Hãy thử điều này:

Drawable play = ContextCompat.getDrawable(MainActivity.this, R.drawable.ic_action_play_arrow); 
play.clearColorFilter(); 
view.invalidate(); // This is helpful when you apply morethan one color filter 

khác hai câu trả lời cũng là có đó là hữu ích quá. Nhưng, nó làm việc cho tôi khi tôi vô hiệu hóa xem.

Các vấn đề liên quan