Je dois dessiner un rectangle arrondi dans l'interface utilisateur Android. Avoir le même rectangle arrondi pour TextView
y EditText
serait également utile.
Ils n'ont pas demandé de gradient. Je ne sais pas pourquoi cette réponse est acceptée.
Je dois dessiner un rectangle arrondi dans l'interface utilisateur Android. Avoir le même rectangle arrondi pour TextView
y EditText
serait également utile.
Dans votre layout xml, faites ce qui suit :
<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>
En modifiant le android:radius
vous pouvez modifier le "rayon" des coins.
<solid>
est utilisé pour définir la couleur du dessinable.
Vous pouvez utiliser le remplacement android:radius
con android:bottomLeftRadius
, android:bottomRightRadius
, android:topLeftRadius
y android:topRightRadius
pour définir le rayon de chaque coin.
Je suppose qu'elle a été acceptée parce qu'elle était là plusieurs mois avant la plupart des autres réponses. Je n'ai pas fait de développement Android depuis des années, donc je n'ai aucune idée de la façon dont la réponse pourrait être modifiée ou mise à jour maintenant pour supprimer le dégradé, bien que je suppose que la balise "solid" telle qu'utilisée dans la réponse de Noundla Sandeep ci-dessous ferait probablement l'affaire.
Je pense que c'est exactement ce dont vous aviez besoin.
Voici un fichier drawable(xml) qui crée un rectangle arrondi. forme_rectangle_ronde.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>
Voici le fichier de mise en page : 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>
-> Dans le code ci-dessus, LinearLayout ayant le fond (C'est le rôle clé à placer pour créer le rectangle arrondi). Ainsi vous pouvez placer n'importe quelle vue comme TextView, EditText... dans ce LinearLayout pour voir le fond comme un rectangle rond pour tous.
Existe-t-il un moyen d'abstraire cela ? Je veux pouvoir utiliser android:background="@drawable/round_rect_shape"
dans mon fichier styles.xml, mais pour utiliser différentes couleurs de fond en définissant une autre propriété. Y a-t-il une autre option que de créer un drawable identique pour chaque couleur ?
En monodroid
vous pouvez faire comme ceci pour le rectangle arrondi, et ensuite garder ceci comme classe parent, editbox
et d'autres caractéristiques de mise en page peuvent être ajoutées.
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>
Maintenant, dans quel élément vous voulez utiliser cette forme, il suffit d'ajouter : android:background="@drawable/custom_round_ui_shape"
Créez un nouveau XML dans la table de dessin nommé "custom_round_ui_shape".
Vous pourriez simplement définir un nouveau fond xml dans le dossier drawables
<?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>
Après cela, il suffit de l'inclure dans votre TextView ou EditText. en le définissant en arrière-plan.
<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" />
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Jetez un coup d'œil à cette discussion stackoverflow.com/questions/3646415/
0 votes
Vous devriez au moins mettre l'image parce que si quelqu'un cherche la même question, ce sera facile à comprendre.
0 votes
Si vous voulez une précision supplémentaire, allez-y là .