Necesito dibujar un rectángulo redondeado en la interfaz de usuario de Android. Tener el mismo rectángulo redondeado para TextView
y EditText
también sería útil.
Necesito dibujar un rectángulo redondeado en la interfaz de usuario de Android. Tener el mismo rectángulo redondeado para TextView
y EditText
también sería útil.
Respuestas:
En su diseño xml haga lo siguiente:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/holo_red_dark" />
<corners android:radius="32dp" />
</shape>
Al cambiar el android:radius
puede cambiar la cantidad de "radio" de las esquinas.
<solid>
se utiliza para definir el color del dibujable.
Puede utilizar reemplazar android:radius
con android:bottomLeftRadius
, android:bottomRightRadius
, android:topLeftRadius
y android:topRightRadius
para definir el radio de cada esquina.
Creo que esto es exactamente lo que necesitas.
Aquí archivo dibujable (xml) que crea un rectángulo redondeado. round_rect_shape.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#ffffff" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>
Aquí archivo de diseño: my_layout.xml
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/round_rect_shape"
android:orientation="vertical"
android:padding="5dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Something text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ff0000" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<requestFocus />
</EditText>
</LinearLayout>
-> En el código anterior, LinearLayout tiene el fondo (esa es la función clave para crear un rectángulo redondeado). Por lo tanto, puede colocar cualquier vista como TextView, EditText ... en ese LinearLayout para ver el fondo como un rectángulo redondo para todos.
android:background="@drawable/round_rect_shape"
mi styles.xml, pero usar diferentes colores de fondo configurando otra propiedad. ¿Hay alguna opción excepto crear un dibujo idéntico para cada color?
En monodroid
, puede hacer esto para un rectángulo redondeado, y luego mantener esto como una clase principal, editbox
y se pueden agregar otras características de diseño.
class CustomeView : TextView
{
public CustomeView (Context context, IAttributeSet ) : base (context, attrs)
{
}
public CustomeView(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)
{
}
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
Paint p = new Paint();
p.Color = Color.White;
canvas.DrawColor(Color.DarkOrange);
Rect rect = new Rect(0,0,3,3);
RectF rectF = new RectF(rect);
canvas.DrawRoundRect( rectF, 1,1, p);
}
}
}
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/colorAccent" />
<corners
android:bottomLeftRadius="500dp"
android:bottomRightRadius="500dp"
android:topLeftRadius="500dp"
android:topRightRadius="500dp" />
</shape>
Ahora, en qué elemento quieres usar esta forma solo agrega:
android:background="@drawable/custom_round_ui_shape"
Cree un nuevo XML en dibujable llamado "custom_round_ui_shape"
Use CardView para el rectángulo redondo. CardView ofrece más funciones como cardCornerRadius, cardBackgroundColor, cardElevation y muchas más. CardView hace que la interfaz de usuario sea más adecuada que el rectángulo redondo personalizado dibujable.
Simplemente podría definir un nuevo fondo xml en la carpeta dibujables
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="enter_your_desired_color_here" />
<corners android:radius="enter_your_desired_radius_the_corners" />
</shape>
Después de esto, simplemente inclúyalo en TextView o EditText definiéndolo en segundo plano.
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="80dp"
android:background="YOUR_FILE_HERE"
Android:layout_weight="1"
android:gravity="center"
android:text="TEXT_HERE"
android:textSize="40sp" />
Haga clic con el botón derecho en el dibujo y cree un nuevo archivo xml de diseño a nombre de, por ejemplo, button_background.xml. luego copie y pegue el siguiente código. Puede cambiarlo según su necesidad.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="14dp" />
<solid android:color="@color/colorButton" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
<size
android:width="120dp"
android:height="40dp" />
</shape>
Ahora puedes usarlo.
<Button
android:background="@drawable/button_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<?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/white" />
<corners android:radius="4dp" />
</shape>