2011-12-16 29 views
7

Ben GMail uygulaması arayüzünde etiketlere görünüm olarak benzer bir şey var. Bilmeyenler için bu gibi görünüyorlar (etiketler bu renkli çubuklardır): Gmail screenshotBackgroundColorSpan benim app

Benzer bir etki elde etmek için dokuz yama çekmeceler kullanıyorum - her etiket için bir TextView oluşturuyorum ve buna çizilebilir . Bu basit bir çözümdür, ama sevmiyorum. Bu profilci gösterilen ve sadece bunu yapmak için doğru yol olduğunu sanmıyorum olarak oldukça yavaş, zarif değil.

bunu daha "ICS-y" yapmak için kullanıcı arayüzünün tasarımını değiştirerek, bu yüzden etiketlerden yuvarlak köşeler kaldırıldı. Ve 9 yama çözümünü nasıl değiştirebileceğimi düşünmeye başladım. En belirgin olanı BackgroundColorSpan kullanmaktır. Ama bir, küçük dezavantajı var. Etiketlerimin bir miktar dolgu yapmasını istiyorum. Çekmeceli, elde etmek kolaydı. Açıklıklı, daha zor. Yatay dolgu yapmak için, sadece başında ve sonunda boşluk ekleyebilirim. Ama dikey dolgu daha geniş yapmak nasıl? şeyleri temizlemek için, bu BackgroundColorSpan ile etiketin bir ekran görüntüsü:

enter image description here

Ben renkli parçalar üzerinde ve daha büyük metninin altında yapmak istiyorum. Ben MetricAffectingSpan çeşit kullanmak gerektiğini düşünüyorum ama hangisi çözemedim. Ya da belki kendi yazmam gerekir? Veya son olarak, belki açıklıklı ihtiyaçlarımı yerine getirmek mümkün sadece değildir ve ben görüntülerle kalmak ya bir tuval ve "elle" GMail uygulamasında olduğu gibi her şeyi çizmek oluşturmalıdır?

cevap

2

Bunu yapmanın en kolay yolu ve GMAIL uygulamasının bundan yararlandığına eminim, şekillerdir.

Sadece yuvarlak köşeli ve düz bir renge sahip dikdörtgen biçiminde bir özel shape oluşturun ve bu taslağı daha sonra metin görünümünüzün arka plan özelliğine atayın.

bir şekil XML tanımlanır. aşağıdaki gibi Sen atar:

<TextView 
    ... 
    android:background="@drawable/my_awesome_shape" /> 
+0

+1 şekiller için, ayrıca şekiller birleştirerek vb gölge ekleme gibi bazı gelişmiş şeyler yapabilirsiniz. – Guillaume

+0

Teşekkürler! Bu kesinlikle görüntüler üzerinde bir gelişme. Ama Spans iki veya daha fazla etiketi bir TextView - şekillerinde göstermeme izin verir, eğer yanılıyorsam düzeltin, bunu kolayca yapmama izin vermeyin. – user1234567

+0

Bu doğrudur, şekilleri sadece tam olarak çizilebilir şekilde kullanabilirsiniz, çünkü bunlar çizimden başka bir şey değildir. – poitroae

İlgili konular