Comment dessiner rectangle arrondi dans Android UI?
je dois dessiner un rectangle arrondi dans L'interface utilisateur Android. Il serait également utile d'avoir le même rectangle arrondi pour TextView
et EditText
.
5 réponses
dans votre mise en page xml faire ce qui suit:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:endColor="@color/something"
android:centerColor="@color/something_else"
android:startColor="@color/something_else_still"
android:angle="270" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
en changeant l'android:rayon Vous pouvez changer la quantité de" arrondi " des coins.
je pense, c'est exactement nécessaire.
fichier dessinable(xml) qui crée un rectangle arrondi. 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>
ici 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 l'arrière-plan(qui est le rôle clé à placer pour créer rectangle arrondi). Ainsi, vous pouvez placer n'importe quelle vue comme TextView, EditText... dans que LinearLayout pour voir le fond comme rectangle rond pour tous.
dans monodroid
, vous pouvez faire comme ceci pour le rectangle arrondi, et puis en gardant ceci comme une classe mère, 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 juste ajouter:
android:background="@drawable/custom_round_ui_shape"
créer un nouveau XML dans drawable nommé "custom_round_ui_shape"
si vous voulez utiliser le rectangle arrondi comme arrière-plan pour TextView et EditText, vous devez utiliser l'arrière-plan personnalisé. Vous devez utiliser le composant shape pour cela pour plus d'information lire cette question en utilisant shape drawable comme fond d'écran xml