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

usuario1301568
fuente
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.

Graham Smith
fuente
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á.

N.Droid
fuente
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" />
Pimentoso
fuente
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í

AGTHAMAYS
fuente
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>
Faxriddin Abdullayev
fuente
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"/>

Muhammad Kamran
fuente