Android: filtre ile bir StateListDrawable yapmak için bir drawable Klonlama
Herhangi bir Drawable vurgulanan yapacak olan genel bir çerçeve işlevi yapmak için çalışıyorumbasılı/odaklı//etc seçilmiş.
Benim görevim alır bir Drawable ve iade StateListDrawable, olduğu varsayılan devlet Drawable kendisi ve devlet için android.R.attr.state_pressed Aynı drawable, sadece bir filtre kullanarak setColorFilter.
Benim sorunum drawable klon ve filtre ile ayrı bir örnek uygulamalı yapamam. Başarmaya çalıştığım şey burada:
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[] { }, drawable);
return res;
}
Eğer klon muyum diye filtre belli ki her iki ülke için uygulanır. mutate() ile oynamaya çalıştım ama.. yardımcı olmuyor
Herhangi bir fikir?
Güncelleme:
Gerçekten kabul cevap klonlar bir drawable. Benim genel işlevi farklı bir problem için başarısız çünkü bana yardım etmedi. Bir StateList bir drawable eklediğinizde, tüm filtreler kaybeder gibi görünüyor.
CEVAP
Aşağıdakileri deneyin:
Drawable clone = drawable.getConstantState().newDrawable();

İzni ben bir android uygulamasından İn...
İlk metin ile bir Android Spinner yapm...
Nasıl android Drawable için bir Bitmap...
Nasıl bir Android cihaz titreşimle yap...
Nasıl android xml drawable dosyası içi...