değiştirir. Burada varsayılan olarak görünür:Android düğmesi arka plan rengi benim Android uygulaması için yerleşik bir tema kullanıyorum düğme boyutunu
İşte bu butona (android:background="@color/play_bg"
) bir arka plan renk eklemek ne olur:
Hey !? Temelde tüm düğmelerin büyüklüğü, dolgusu ve kenar boşluklarını değiştirdi!
yüzdenbackgroundTint
özelliği (
android:backgroundTint="@color/play_bg"
) kullanılarak beklenen sonuç almak başardı:
Maalesef bu sadece benim için kabul edilemez API, sürüm 21 beri desteklenmektedir.
Yani iki soru:
- Neden düğmenin özelliklerinin kalanı ile arka plan pisliklerimizi değişiyor mu?
backgroundTint
olmadan beklenen sonucu nasıl alabilirim?
Ve bir bonus sorusu: Programlı olarak beklenen sonucu nasıl alabilirim (uygulamanızda dinamik düğmeler var, bu yüzden bu çok yararlı olur)?
Güzel oluşturulmasının daha kolay bir yol olan bu link kullanabilirsiniz. İşe yarıyor! Tamlık için, 'PorterDuff.mode.MULTIPLY''in ne yaptığını açıklayabilir misiniz? Ayrıca, "android: background =" @ color/... "' ile "sezgisel" çözümün neden çalışmadığını biliyor musunuz? –
Grafik Uygulamasını tasarlarken esas olarak PorterDuff kullanıyoruz. PorterDuff, görüntüleri birbirinin üzerine yerleştirilmiş "düzensiz şekilli karton parçaları" gibi birleştirme ve aynı zamanda üst üste binen parçaların karıştırılması için bir şema gibi birleştirme yolu olarak tarif edilmektedir. http://ssp.impulsetrain.com/porterduff.html java.lang.Object ↳ \t java.lang.Enum \t ↳ \t android.graphics.PorterDuff.Mode Referans: http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html –
kendi ana yaklaşım neden işe yaramadığını sorunuza gelince: Arka plan kullandığınızda, metnin olduğu kısım için arka plan değiştirildi. Arka plan, kullandığınız Metin boyutuna bağlıdır. Tüm arka plan değişikliği için setColorFiller (Color.RED) gerekebilir –