我需要在Android用户界面中绘制一个圆角矩形。对于具有相同的圆角矩形TextView
,EditText
这也将有所帮助。
我需要在Android用户界面中绘制一个圆角矩形。对于具有相同的圆角矩形TextView
,EditText
这也将有所帮助。
Answers:
在布局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>
通过更改,android:radius
可以更改角的“半径”。
<solid>
用于定义可绘制对象的颜色。
您可以使用替换android:radius
有android:bottomLeftRadius
,android:bottomRightRadius
,android:topLeftRadius
并android:topRightRadius
定义半径每个角落。
我认为,这正是您的需要。
这里的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>
->在上面的代码中,LinearLayout具有背景(这是放置以创建圆角矩形的关键作用)。因此,您可以在该LinearLayout中放置任何视图,例如TextView,EditText ...,以将背景视为所有矩形。
android:background="@drawable/round_rect_shape"
在我的styles.xml中使用,但是要通过设置另一个属性来使用不同的背景颜色。除了为每种颜色创建相同的可绘制对象之外,是否还有其他选择?
在中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);
}
}
}
<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"
在名为“ custom_round_ui_shape”的可绘制对象中创建一个新的XML
您可以在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" />
右键单击可绘制对象,并以例如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"/>