Saya perlu menggambar persegi panjang bulat di UI Android. Memiliki persegi panjang bulat yang sama untuk TextView
dan EditText
juga akan sangat membantu.
Saya perlu menggambar persegi panjang bulat di UI Android. Memiliki persegi panjang bulat yang sama untuk TextView
dan EditText
juga akan sangat membantu.
Jawaban:
Di layout Anda xml lakukan hal berikut:
<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>
Dengan mengubah android:radius
Anda dapat mengubah jumlah "jari-jari" dari sudut.
<solid>
digunakan untuk menentukan warna yang dapat digambar.
Anda dapat menggunakan menggantikan android:radius
dengan android:bottomLeftRadius
, android:bottomRightRadius
, android:topLeftRadius
dan android:topRightRadius
untuk menentukan radius untuk setiap sudut.
Saya pikir, inilah yang sebenarnya Anda butuhkan.
Di sini file drawable (xml) yang membuat persegi panjang bulat. 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>
Di sini file tata letak: 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>
-> Dalam kode di atas, LinearLayout memiliki latar belakang (Itulah peran kunci untuk membuat persegi panjang bulat). Jadi Anda dapat menempatkan tampilan seperti TextView, EditText ... di LinearLayout untuk melihat latar belakang sebagai persegi panjang bulat untuk semua.
android:background="@drawable/round_rect_shape"
di styles.xml saya, tetapi untuk menggunakan warna latar belakang yang berbeda dengan mengatur properti lain. Apakah ada pilihan selain membuat drawable yang identik untuk setiap warna?
Di monodroid
, Anda bisa melakukannya seperti ini untuk persegi panjang bulat, dan kemudian menjaga ini sebagai kelas induk, editbox
dan fitur tata letak lainnya dapat ditambahkan.
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>
Sekarang, di elemen mana Anda ingin menggunakan bentuk ini tambahkan saja:
android:background="@drawable/custom_round_ui_shape"
Buat XML baru di drawable bernama "custom_round_ui_shape"
Gunakan CardView untuk Round Rectangle. CardView memberikan lebih banyak fungsi seperti cardCornerRadius, cardBackgroundColor, cardElevation & banyak lagi. CardView membuat UI lebih cocok daripada Draw Round Rectangle kustom.
Anda bisa mendefinisikan latar belakang xml baru di folder drawables
<?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>
Setelah ini cukup sertakan dalam TextView atau EditText Anda dengan mendefinisikannya di latar belakang.
<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" />
Klik kanan pada drawable dan buat file xml layout baru dengan nama misalnya button_background.xml. lalu salin dan tempel kode berikut. Anda dapat mengubahnya sesuai kebutuhan Anda.
<?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>
Sekarang kamu bisa menggunakannya.
<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>