Android UIで角丸長方形を描画する必要があります。 TextView
とEditText
に同じ角丸長方形を使用すると便利です。
レイアウト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を変更すると、角の「丸みを帯びた」量を変更できます。
これはまさにあなたが必要だと思う。
ここでは、角丸長方形を作成する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 ...などのビューを配置して、すべてを丸い長方形として背景を表示できます。
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を作成します
角丸長方形をTextViewおよびEditTextの背景として使用する場合は、カスタム背景を使用する必要があります。詳細については、この質問を読むためにこのために形状コンポーネントを使用する必要があります 図形Drawableを背景XMLとして使用する
ドロアブルを右クリックして、たとえば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"/>