¿Puedo dibujar un rectángulo en XML?


118

Me pregunto si puedo dibujar un rectángulo en XML. Sé cómo dibujar usando el método drawRect mediante programación.


1
decir XML significa todo y nada, es decir, cualquier cosa ...
ShinTakezou

¿Cuál es el propósito de usar XML? drawRect funciona en Canvas, que generalmente se usa para crear vistas personalizadas.
novato

Estoy completamente de acuerdo con @Creator, rara vez usamos Canvas a menos que sea para algo un poco más complejo. La versión XML facilita el cambio de fondo en toda la aplicación para elementos particulares de la interfaz de usuario, como resultado de que los atributos se definen en una ubicación.
Graham Smith

@GrahamSmith Le pregunté por el propósito, para poder saber qué quería hacer con esto. Es posible que rara vez uses un Canvas, lo usé muchas veces para desarrollar juegos. Nada para estar de acuerdo o en desacuerdo aquí.
novato

@creador lo siento, creo que malinterpreté el tono del comentario como "¿por qué te molestarías?". Mis disculpas.
Graham Smith

Respuestas:


229

Sí, puedes y aquí hay uno que hice antes:

<?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>

Puede crear un nuevo archivo XML dentro de la carpeta dibujable, agregar el código anterior y luego guardarlo como rectangle.xml.

Para usarlo dentro de un diseño, debe establecer el android:backgroundatributo en la nueva forma dibujable. La forma que hemos definido no tiene dimensiones y, por lo tanto, tomará las dimensiones de la Vista que se define en el diseño.

Así que poniendo todo junto:

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

Finalmente; puede configurar este rectángulo para que sea el fondo de cualquier vista, aunque para ImageViews usaría android:src. Esto significa que puede usar el rectángulo como fondo para ListViews, TextViews ... etc.


1
¿Cómo haría alguien para que el color se pudiera establecer desde el diseño de Android donde hacemos la <Vista?
kobihudson

Creo que no se puede agregar una identificación para ello
Moses Aprico

¿Cómo cambiar el color del trazo mediante programación?
Zahidul

34

Crea rectangle.xmlusando Shape Drawable Como este, ponlo en tu Carpeta Drawable ...

<?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>

ponerlo en un ImageView

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

Espero que esto te ayudará.


21

Manera rápida y sucia:

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

8

prueba esto

                <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>

salida

ingrese la descripción de la imagen aquí


2

Usa este código

<?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>

0

crear archivo de recursos en dibujable

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#3b5998" />
<cornersandroid:radius="15dp"/>

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.