Мне нужно нарисовать округленный прямоугольник в пользовательском интерфейсе Android. Также будет полезно иметь тот же округленный прямоугольник для TextView
и EditText
.
Как нарисовать округленный прямоугольник в Android UI?
Ответ 1
В вашем макете 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>
Изменив андроид: радиус, вы можете изменить количество "округления" углов.
Ответ 2
Я думаю, вам это точно нужно.
Здесь можно рисовать (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... в этом LinearLayout, чтобы увидеть фон как круглый прямоугольник для всех.
Ответ 3
В 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);
}
}
}
Ответ 4
<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 в объявлении с именем "custom_round_ui_shape"
Ответ 5
Если вы хотите использовать закругленный прямоугольник в качестве фона для TextView и EditText, вы должны использовать собственный фон. Вам нужно использовать компонент формы для этого, чтобы узнать больше об этом вопросе Использование формы для рисования в качестве фонового xml
Ответ 6
Щелкните правой кнопкой мыши на нарисованном объекте и создайте новый XML файл макета с именем, например, button_background.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
Используйте CardView для круглого прямоangularьника. CardView предоставляет больше функциональных возможностей, таких как cardCornerRadius, cardBackgroundColor, cardElevation & многое другое. CardView делает пользовательский интерфейс более подходящим, чем настраиваемый Custom Round Rectangle.