2012-04-12 2 views
86

Je me demande si je peux dessiner un rectangle en XML. Je sais dessiner à l'aide de la méthode drawRect par programmation.Puis-je dessiner un rectangle en XML?

+0

Dire XML signifie tout et rien, c'est-à-dire n'importe quoi ... – ShinTakezou

+0

Quel est le but de l'utilisation de XML? drawRect fonctionne sur Canvas, qui est généralement utilisé pour créer des vues personnalisées. – noob

+0

Je suis complètement en désaccord avec @Creator, nous utilisons rarement Canvas à moins que ce soit pour quelque chose d'un peu plus complexe. La version XML facilite la modification de l'arrière-plan de l'ensemble de l'application pour des éléments d'interface utilisateur particuliers, en raison de la définition des attributs dans un emplacement. –

Répondre

167

Oui vous pouvez et voici que je disais plus tôt:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape"> 
    <stroke android:width="2dp" android:color="#ff207d94" /> 
    <padding android:left="2dp" 
     android:top="2dp" 
     android:right="2dp" 
     android:bottom="2dp" /> 
    <corners android:radius="5dp" /> 
    <solid android:color="#ffffffff" /> 
</shape> 

Vous pouvez créer un nouveau fichier XML dans le dossier drawable, et ajoutez le code ci-dessus, puis enregistrez comme rectangle.xml.

Pour l'utiliser dans une mise en page, vous devez définir l'attribut android:background sur la nouvelle forme pouvant être dessinée. La forme que nous avons définie n'a aucune dimension et prendra donc les dimensions de la vue définie dans la mise en page.

donc mettre tous ensemble:

<View 
    android:id="@+id/myRectangleView" 
    android:layout_width="200dp" 
    android:layout_height="50dp" 
    android:background="@drawable/rectangle"/> 

Enfin; Vous pouvez définir ce rectangle comme arrière-plan de n'importe quelle vue, bien que pour ImageViews vous utilisiez android:src. Cela signifie que vous pouvez utiliser le rectangle comme arrière-plan pour ListViews, TextViews ... etc.

+1

Comment quelqu'un pourrait-il faire en sorte que la couleur puisse être définie à partir de la disposition androïde où l'on fait la kobihudson

+0

Je pense que vous ne pouvez pas ajouter d'identifiant pour cela –

24

Créer rectangle.xml en utilisant forme Drawable Vous aimez cette mise à votre Drawable dossier ...

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
    <solid android:color="@android:color/transparent"/> 
    <corners android:radius="12px"/> 
    <stroke android:width="2dip" android:color="#000000"/> 
</shape> 

le mettre dans un ImageView

<ImageView 
android:id="@+id/rectimage" 
android:layout_height="150dp" 
android:layout_width="150dp" 
android:src="@drawable/rectangle"> 
</ImageView> 

Espérons que cela vous aidera.

+0

Merci beaucoup. C'est utile. – user1301568

14

façon rapide et sale:

<View 
    android:id="@+id/colored_bar" 
    android:layout_width="48dp" 
    android:layout_height="3dp" 
    android:background="@color/bar_red" /> 
7

essayer cette

   <TableRow 
        android:layout_width="match_parent" 
        android:layout_marginTop="5dp" 
        android:layout_height="wrap_content"> 

        <View 
         android:layout_width="15dp" 
         android:layout_height="15dp" 
         android:background="#3fe1fa" /> 

        <TextView 
         android:textSize="12dp" 
         android:paddingLeft="10dp" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:textAppearance="?android:attr/textAppearanceMedium" 
         android:text="1700 Market Street" 
         android:id="@+id/textView8" /> 
       </TableRow> 

sortie

enter image description here

1

Utilisez ce code

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

<corners 
    android:bottomLeftRadius="5dp" 
    android:bottomRightRadius="5dp" 
    android:radius="0.1dp" 
    android:topLeftRadius="5dp" 
    android:topRightRadius="5dp" /> 

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

<stroke 
    android:width="2dp" 
    android:color="#25aaff" /> 

</shape> 
Questions connexes