Мені потрібно намалювати закруглений прямокутник в інтерфейсі Android. Маючи однаковий закруглений прямокутник для, TextView
а EditText
також було б корисно.
Мені потрібно намалювати закруглений прямокутник в інтерфейсі Android. Маючи однаковий закруглений прямокутник для, TextView
а EditText
також було б корисно.
Відповіді:
У своєму макеті 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
визначити радіус для кожного кута.
Я думаю, це вам точно потрібно.
Тут малюється файл (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, щоб побачити фон як круглий прямокутник для всіх.
android:background="@drawable/round_rect_shape"
в моїх стилях.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"
Створіть новий XML з можливим написом з назвою "custom_round_ui_shape"
Використовуйте CardView для круглого прямокутника. CardView надає більше функцій, таких як cardCornerRadius, cardBackgroundColor, cardElevation та багато іншого. CardView робить користувальницький інтерфейс більш підходящим, ніж призначений для малювання круглий прямокутник.
Ви можете просто визначити новий фон у форматі 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" />
Клацніть правою кнопкою миші на зображуваному файлі та створіть новий файл формату 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"/>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners android:radius="4dp" />
</shape>