如何在Android UI中绘制圆角矩形?

M.A*_*ali 127 android textview android-edittext

我需要在Android UI中绘制一个圆角矩形.具有相同的圆角矩形TextView,并EditText也将是有益的.

And*_*ass 190

在您的布局xml中执行以下操作:

<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>
Run Code Online (Sandbox Code Playgroud)

通过更改android:radius,您可以更改角落的"舍入"量.


Nou*_*eep 120

我想,这是你真正需要的.

这里是drawable(xml)文件,用于创建圆角矩形. 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>
Run Code Online (Sandbox Code Playgroud)

这里布局文件: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>
Run Code Online (Sandbox Code Playgroud)

- >在上面的代码中,LinearLayout具有背景(这是创建圆角矩形的关键角色).因此,您可以在该LinearLayout中放置任何视图,如TextView,EditText ...,将背景视为所有的圆形矩形.


lea*_*drd 19

monodroid,你可以这样做圆角矩形,然后将其保持为父类,editbox并可以添加其他布局功能.

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



       }  
    }
}
Run Code Online (Sandbox Code Playgroud)