2011-05-18 15 views
8

Orada bir null koymak istiyorsam, bir öznitelik girmek için neye ihtiyacım var? ÖrneğinAndroid için null bir XML özniteliğini nasıl belirleyebilirim?

bu kod parça: bu çekilebilir yüklemeye çalıştığında

<?xml version="1.0" encoding="utf-8"?> 
<transition xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:drawable="@drawable/ef_gradient_blue" /> 
    <item android:drawable="@null" /> 

</transition> 

Ama bu benim uygulama kilitlenmeleri gibi çalışmaz. Null olmak için ihtiyacım var, bu yüzden tamamen opaktan tamamen görmeye geçmek için bir geçiş yapabilir. Benim Java'da

, böyle yüklemek:

mTransitionBlue = (TransitionDrawable)mProjectResources.getDrawable(R.drawable.transition_blue); 

Ama önce belirtilen XML olan transition_blue.xml, bulamıyorum diyerek bundan bir çalışma zamanı özel olsun. Peki bunu nasıl başarabilirim?

+0

Transit geçişe ne bekler? Demek istediğim, çekilebilir olarak "null" altında ne anlama gelir? Siyah görünüm? Tamamen şeffaf görünüm? – inazaruk

+0

Ben çekilebilir olandan, sadece açık bir arka plana geçiş istiyorum ... Eğer böyle bir şey olarak adlandırırsanız bir solma etkisi ... – ThaMe90

cevap

22

Sen (android lib o önceden tanımlanmış) orada şeffaf çekilebilir kullanmalısınız:

<transition xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/ef_gradient_blue" /> 
    <item android:drawable="@android:color/transparent" /> 
</transition> 

@android:color/transparent 'ın değeri #00000000 olduğunu. İlk iki rakamın 0 olması önemlidir, çünkü rengin alfa değerini tanımlarlar (geri kalanı kırmızı, yeşil ve mavidir).
Yani siz de

<item android:drawable="#00000000" /> 

kullanmak veya renkler arasına yeniden tanımlayabilirsiniz.

Başvuru için Android Developers 2D Graphics ve Transition Drawables makalelerine göz atabilirsiniz.

+0

Bu, çarpışma sorununu çözüyor, ama şimdi, geçiş anında ve diğerinden çekilebilir olandan akmıyor. Ve bir yan etki olarak, şimdi tamamen farklı bir çekilişe dönüşecek. – ThaMe90

+0

Görünümünüz boşsa, boyutlandırma sorun olabilir. Bir "ef_transparent.xml" çizimi oluşturabilir ("ef_gradient_blue" ifadesine sahip olduğunuzdan, sadece '# 00000000' rengini ayarlayın) ve 'android' olarak çekilebilirsiniz. – rekaszeru

+0

Ne yazık ki bu işe yaramayacak ... – ThaMe90

İlgili konular