Как нарисовать закругленный прямоугольник в Android UI?
мне нужно нарисовать закругленный прямоугольник в пользовательском интерфейсе Android. Имея тот же закругленный прямоугольник для TextView
и EditText
также было бы полезно.
5 ответов:
в вашем макете 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 имеет фон (это ключевая роль для создания скругленного прямоугольника). Таким образом, вы можете разместить любое представление, такое как 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"
создать новый XML в drawable с именем "custom_round_ui_shape"
Если вы хотите использовать закругленный прямоугольник в качестве фона для TextView и EditText, вы должны использовать пользовательский фон. Вам нужно использовать компонент shape для этого для получения дополнительной информации прочитайте этот вопрос использование формы drawable в качестве моего фона xml