2012-04-09 6 views
9

Ich muss eine Aktivität erstellen, die wie ein Dialogfeld mit abgerundeten Ecken aussehen sollte.wie gerundet Dialog-Thema für die Aktivität

Für diese Anforderung stelle ich

android:theme="@android:style/Theme.Dialog" 

Nun meine Tätigkeit wie ein Dialogfeld aussieht, aber ich brauche seine Ecken abgerundet werden.

Dann habe ich XML mit Attribut erstellt und dies als mein Aktivitätsthema einziehbar, aber jetzt sieht meine Aktivität nicht wie Dialogfeld aus.

Bitte schlagen Sie mir vor, was getan werden kann, damit meine Aktivität wie Dialogfeld mit abgerundeten Ecken aussieht.

Antwort

31

Sie könnten Ihre eigenen theme machen, die abgerundeten Ecken hat. Zunächst müssen Sie ein drawable für den Activity Hintergrund:

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

    <corners android:radius="15dp" /> 

    <solid android:color="#565656" /> 

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

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

</shape> 

Next Ihr eigenes Thema machen, dass die Mutter Theme.Dialog erweitert:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <style name="ThemeWithCorners" parent="android:Theme.Dialog"> 
     <item name="android:windowBackground">@drawable/another_test_drawable</item> 
    </style> 


</resources> 

Dies wird in einer Datei styles.xml im res/values Ordner mit dem Namen. Verwenden Sie dieses Thema im Android Manifest für die Activity Sie wollen:

//... 
<activity 
      android:name=".ActivityName" 
      android:label="@string/app_name" 
      android:theme="@style/ThemeWithCorners" > 
//... 
+0

bitte meine Liebe kann Ihre Antwort auf Eis Sandwish alertdialog angewendet werden, ich versuche, aber es funktioniert nicht, kann keine Ecke bekommen, danke –

+0

gute Antwort danke –

+0

Danke für den Tipp, ein Thema zu verwenden. Wenn Sie das Zeichenfeld als Hintergrund festlegen, werden die Eckpunkte nicht transparent. –

0

Erstellen Sie zunächst eine abgerundete Ecke Form ziehbar wie so:

dialogbg.xml:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="15dp" /> 
</shape> 

Dann gehen Sie auf die Layout-XML-Datei für Ihre Aktivität und ändern es ist android: backgorund Attribut wie so

<RelativeLayout 
    android:layout_width="..." 
    android:layout_height="..." 
    android:background="@drawable/dialogbg"> 
    <!--views here...--> 
</RelativeLayout> 
+2

Saarraz, Vielen Dank für Ihre Hilfe, aber ich versuchte, die obige Lösung, Its die Form Layout modifizieren, aber nicht die tatsächliche Aktivität. – brig

Verwandte Themen