我需要在Android UI中绘制一个圆角矩形。 <{1}}和TextView
具有相同的圆角矩形也会有所帮助。
答案 0 :(得分:178)
在你的布局xml中执行以下操作:
<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>
通过更改android:radius,您可以更改角落的“舍入”量。
答案 1 :(得分:112)
我想,这是你真正需要的。
这里创建圆角矩形的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>
此处布局文件: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>
- &GT;在上面的代码中,LinearLayout具有背景(这是创建圆角矩形的关键角色)。 因此,您可以在该LinearLayout中放置任何视图,如TextView,EditText ...,将背景视为所有人的圆角矩形。
答案 2 :(得分: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);
}
}
}
答案 3 :(得分:3)
<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>
现在,您要在哪个元素中使用此形状添加:
android:background="@drawable/custom_round_ui_shape"
在drawable中创建一个名为&#34; custom_round_ui_shape&#34;
的新XML答案 4 :(得分:1)
如果要将圆角矩形用作TextView和EditText的背景,则应使用自定义背景。您需要使用形状组件来获取更多信息,请阅读此问题Using shape drawable as my background xml
答案 5 :(得分:1)
您只需在drawables文件夹中定义一个新的xml背景
<?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>
之后,只需将其包含在TextView或EditText中 通过在后台定义它。
<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" />
答案 6 :(得分:0)
右键单击可绘制对象,并以例如button_background.xml的名称创建新的布局xml文件。 然后复制并粘贴以下代码。 您可以根据需要进行更改。
<?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>
现在您可以使用它了。
<Button
android:background="@drawable/button_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
答案 7 :(得分:0)
将 CardView 用于圆角矩形。 CardView提供了更多功能,例如cardCornerRadius,cardBackgroundColor,cardElevation等。 CardView使UI比自定义圆形矩形可绘制更合适。
答案 8 :(得分:0)
<?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>