web-dev-qa-db-ja.com

Android UIで角丸長方形を描画する方法は?

Android UIで角丸長方形を描画する必要があります。 TextViewEditTextに同じ角丸長方形を使用すると便利です。

122
M.A.Murali

レイアウト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を変更すると、角の「丸みを帯びた」量を変更できます。

182
Andreass

これはまさにあなたが必要だと思う。

ここでは、角丸長方形を作成する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 ...などのビューを配置して、すべてを丸い長方形として背景を表示できます。

117
Noundla Sandeep

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



       }  
    }
}
19
learn_andrd
<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を作成します

4
Uttam Meerwal

角丸長方形をTextViewおよびEditTextの背景として使用する場合は、カスタム背景を使用する必要があります。詳細については、この質問を読むためにこのために形状コンポーネントを使用する必要があります 図形Drawableを背景XMLとして使用する

1
Mojo Risin

ドロアブルを右クリックして、たとえば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"/>
0
M Karimi