2010-01-23 20 views
84

Android sitesinde section about color drawables var. xml bu drawables tanımlanması şuna benzer: Bir rengin yuvarlatılmış köşe yarıçapını xml kullanarak nasıl çizilebilir?

setCornerRadius(float radius) 

xml yuvarlatılmış köşeleri ayarlamak için bir yolu var mı: java api olarak
<resources> 
    <drawable name="solid_red">#f00</drawable> 
    <drawable name="solid_blue">#0000ff</drawable> 
    <drawable name="solid_green">#f0f0</drawable> 
</resources> 

, onlar thr aşağıdakilere sahip yöntem yuvarlatılmış köşeleri tanımlamak için ?

+0

Köşeleri koddan ayarlamak için bkz. (Degrade Çizgileri): http://stackoverflow.com/questions/8709595/how-to-set-corner-radiuses-for-the-button-in-java-code – samosaris

+1

Bu http://www.gadgetsaint.com/tips/rounded-corners-views-layouts-android/#.WPz2QVN97BI – ASP

cevap

236

Yuvarlatılmış köşeli XML'de çizilebilir oluşturmak için <shape> etiketini kullanın. (Ayrıca bir renk degrade tanımlamak gibi şekil etiketi ile başka şeyler yapabilirsiniz).

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#ffffffff"/>  

    <stroke android:width="3dp" 
      android:color="#ff000000" /> 

    <padding android:left="1dp" 
      android:top="1dp" 
      android:right="1dp" 
      android:bottom="1dp" /> 

    <corners android:bottomRightRadius="7dp" 
      android:bottomLeftRadius="7dp" 
      android:topLeftRadius="7dp" 
      android:topRightRadius="7dp" /> 
</shape> 
+1

Bu dosya nerede kaydedilir ve benim java kodumla nasıl edinilir? thanks – shyam

+6

xml dosyası olarak kaydet Çizilebilir dizinde, bu özel durumda kaynak ismini (R.drawable.your_xml_name) – Guillaume

+21

kullanarak herhangi bir çizilebilir (simge veya kaynak dosyası) kullanacağınız gibi kullanın, bu durumda tüm yarıçaplar aynıdır, böylece android kullanmış olabilirsiniz: radius = "7dp" –

18

mbaird cevabı çalışıyor:

Burada beyaz zemin, siyah sınır ve yuvarlatılmış köşeleri olan çekilebilir oluşturmak için benim uygulamalardan biri kullanıyorum bir XML dosyasının bir kopyası. Sadece Android'de bir hata olduğu bilinmelidir (en az 2.1), herhangi bir köşe yarıçapını 0'a ayarlarsanız, tüm köşeleri 0'a zorlar (en azından "dp" birimleri olan durumdur). Başka birimlerle denemeyin).

Üst köşelerin yuvarlatıldığı ve alt köşelerin kare olduğu bir şekle ihtiyacım vardı. Bunu yapmak istediğim köşeleri, 0: 0.1dp'den biraz daha büyük bir değere ayarlamak istedim. Bu hala kare köşeler oluşturur, ancak diğer köşeleri 0 yarıçapa zorlamaz.

+0

yuvarlak kenarından metin almazsınız sadece 0.1 dp yazdınız mı? O çalışır, ben de yuvarlak köşeleri ve alt kare olanları da ihtiyacım var, sadece 1 dp, kare köşelerinde ve yuvarlak olanlar üzerinde 10dp kullandığınız gibi aynı sorunu, u doğru, hala fark edilebilir, ama bana% 90 verir ne İstenirse, dokümantasyon ayarlarına göre 0'da köşelerdeki köşelerde çalışmış olmalı. – codeScriber

+0

Ne kadar harika bir adamsın. ÇALIŞIYOR bir cazibe gibi. Beni birkaç saat kurtardı. ;-) – Dude

+0

Aslında bu bir hata değil, belgelere dahil: https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape – Tsuharesu

İlgili konular