2012-05-21 9 views
5

Soru: Animate change of view background color on AndroidTransitionDrawable kaynağı aracılığıyla iki arka plan arasında bir TextView solmaya çalışıyorum.TransitionDrawable TextView'da arka plan beklendiği gibi çalışmıyor

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

Ve tarafından çalışma zamanı üzerinde arka plan olarak ayarlamak için deneyin: My geçiş xml dosyası şuna benzer

Textview with gray_bar background :

TextView answerBox = (TextView) findViewById(R.id.answerBox); 
answerBox.setBackgroundResource(R.drawable.correct_transition); 
TransitionDrawable transition = (TransitionDrawable) answerBox.getBackground(); 
transition.startTransition(1500); 

sonuç TextView'un bundan dönüştüren olmasıdır Buna: Textview with green_bar background

Tüm gri çubuk g'ye dönüştürülmesi gerektiğinde Birini reen.

Her ikisi de 9 düzeltme eki görüntülerdir.

gray_bar green_bar

Benim tahminim yeşil çubuk gri bar içinde metin için kullanılabilir alan doldurma olmasıdır, ama nedenini bilmiyorum: Bunlar aslı bulunmaktadır. Herhangi bir ipucu? Gri olanı da olması gerekenden çok daha büyük görünür, ancak dahil edilen görüntülerin görünümüne rağmen, geçiş öncesinde, sırasında veya sonrasında boyutu değiştirmez. 9-yama görüntüleri ile ilgili bir sorun olabilir, çünkü normal görüntüleri test ettim ve geçiş harika çalışıyor.

Yardımlarınız için teşekkürler!

+0

Tam olarak aynı sorun var ... bunu herhangi bir şekilde çözmeyi başardınız mı? – zwebie

+0

hmmm, google'ın örneğinde setImageDrawable kullanabilirler, belki de setbackground beklenen bir davranış değildir, eğer değilse, bir "arka plan" olarak bir görüntüyü (metin düzeninin altında göreli düzen yerini kullanarak) koyabilirsiniz ve sadece belki de ? – MikeIsrael

+0

Hayır, bu da çalışmıyor. Resimler yerine renklere geçtim. Ben bir 9-yama sorunu öneririm çünkü aynı kodu normal görüntülerle test ettim ve beklendiği gibi çalıştım. Bu yüzden, zwebie, 9-yama görüntüleri yerine renkle çalışıyor ve benim durumumda normal (9-yama olmayan) görüntülerle çalışıyor. – viridis

cevap

0

Yeşil çubukla gördüğünüz sorunu, gri alanın tamamını kapamadan yeniden üretebildim. Düzeltmek için, gri çubuğu 9-yatı alın ve alt ve sağdaki çizgileri köşelerden bir piksele kadar uzatın.

Bir yan notta, 9 yamanız ile ilgili başka bir sorun da, içeriğin yüksekliği arttıkça, görüntünüzün dikey olarak uzadıkça görsel yapaylıklara sahip olmasıdır. Bu, görüntünüzün sol tarafındaki siyah çubuğun yüksekliğinin bir sonucudur. Bu, 9-yamanın hangi parçasının uzaması gerektiğini belirler. Bu 9 yamanın daha da geliştirilmesi, soldaki siyah çizginin sol kenarın tam ortasındaki tek bir piksele indirgenmesi olacaktır. Sadece bir piksel gerilebilir olarak işaretlendiğinden, çekilebilirliğiniz yüksekse, bu size güzel ve keskin bir dikey kenar sağlamalıdır.

Yerleşim kodunuzu eklerseniz, diğer boyutlandırma sorunlarınız hakkında size yardımcı olabiliriz.