Android: การโคลนสิ่งที่วาดได้เพื่อสร้าง StateListDrawable ด้วยตัวกรอง
ฉันพยายามที่จะทำให้ฟังก์ชั่นกรอบทั่วไปที่ทำให้ Drawable ใด ๆ กลายเป็นไฮไลต์เมื่อกด / มุ่งเน้น / เลือก / etc ฟังก์ชั่นของฉันใช้เวลา Drawable และผลตอบแทน StateListDrawable ที่รัฐเริ่มต้นคือ Drawable ตัวเองและของรัฐเพื่อandroid.R.attr.state_pressedเป็น drawable setColorFilterเดียวกันเพียงกับตัวกรองที่นำมาใช้โดยใช้ ปัญหาของฉันคือฉันไม่สามารถโคลนสิ่งที่วาดได้และสร้างอินสแตนซ์แยกต่างหากโดยใช้ตัวกรอง นี่คือสิ่งที่ฉันพยายามจะบรรลุ: StateListDrawable makeHighlightable(Drawable drawable) { StateListDrawable res = new StateListDrawable(); Drawable clone = drawable.clone(); // how do I do this?? clone.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY); res.addState(new int[] {android.R.attr.state_pressed}, clone); res.addState(new int[] { …