Saya memiliki satu layout besar, dan satu layout lebih kecil di dalamnya.
Bagaimana cara membuat batas garis di sekitar tata letak kecil?
Saya memiliki satu layout besar, dan satu layout lebih kecil di dalamnya.
Bagaimana cara membuat batas garis di sekitar tata letak kecil?
Jawaban:
Tentu. Anda dapat menambahkan batas ke tata letak apa pun yang Anda inginkan. Pada dasarnya, Anda perlu membuat drawable khusus dan menambahkannya sebagai latar belakang tata letak Anda. contoh:
Buat file bernama customborder.xml
di folder drawable Anda:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="20dp"/>
<padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
<stroke android:width="1dp" android:color="#CCCCCC"/>
</shape>
Sekarang terapkan sebagai latar belakang tata letak Anda yang lebih kecil:
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/customborder">
Itu seharusnya berhasil.
Lihat juga:
<solid/>
dan <stroke/>
isi seluruh persegi panjang? Apakah ini bug dalam kode saya?
Buat XML yang disebut border.xml di folder drawable seperti di bawah ini:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#FF0000" />
</shape>
</item>
<item android:left="5dp" android:right="5dp" android:top="5dp" >
<shape android:shape="rectangle">
<solid android:color="#000000" />
</shape>
</item>
</layer-list>
lalu tambahkan ini ke tata letak linier sebagai backgound seperti ini:
android:background="@drawable/border"
Coba ini:
Sebagai contoh, mari kita definisikan res / drawable / my_custom_background.xml sebagai:
(buat tata letak ini di folder drawable Anda) layout_border.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="2dp" android:height="2dp"
android:color="#FF0000" />
<solid android:color="#000000" />
<padding android:left="1dp" android:top="1dp" android:right="1dp"
android:bottom="1dp" />
<corners android:radius="1dp" android:bottomRightRadius="5dp"
android:bottomLeftRadius="0dp" android:topLeftRadius="5dp"
android:topRightRadius="0dp" />
</shape>
</item>
</layer-list>
main.xml
<LinearLayout
android:layout_gravity="center"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@drawable/layout_border" />
</LinearLayout>
Buat satu file xml di folder drawable
<stroke
android:width="2dp"
android:color="#B40404" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
<corners android:radius="4dp" />
Sekarang panggil xml ini ke latar belakang tata letak kecil Anda
android: background = "@ drawable / yourxml"
Solusi ini hanya akan menambahkan batas, badan LinearLayout akan menjadi transparan.
Pertama, Buat drawable perbatasan ini di folder drawable, border.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android= "http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="2dp" android:color="#ec0606"/>
<corners android:radius="10dp"/>
</shape>
Kemudian, di Tampilan LinearLayout Anda, tambahkan border.xml sebagai latar belakang seperti ini
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/border">
Anda juga dapat melakukannya secara Pragmatis
GradientDrawable gradientDrawable=new GradientDrawable();
gradientDrawable.setStroke(4,getResources().getColor(R.color.line_Input));
Kemudian atur latar belakang tata letak sebagai:
LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);
Saya akan menambahkan tautan dokumen Android ke jawaban lain.
https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
Ini menjelaskan semua atribut dari Shape Drawable dan di stroke
antara mereka untuk mengatur batas.
Contoh:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<stroke android:width="1dp" android:color="#F00"/>
<solid android:color="#0000"/>
</shape>
Perbatasan merah dengan latar belakang transparan.
Tidak ingin membuat sumber daya yang dapat digambar?
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:minHeight="128dp">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="1dp"
android:background="@android:color/white">
<TextView ... />
</FrameLayout>
</FrameLayout>
Coba Ini di res / drawable Anda
<?xml version="1.0" encoding="UTF-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle">
<padding android:left="15dp"
android:right="15dp"
android:top="15dp"
android:bottom="15dp"/>
<stroke android:width="10dp"
android:color="@color/colorPrimary"/>
</shape>
</item><item android:left="-5dp"
android:right="-5dp"
android:top="-5dp"
android:bottom="-5dp">
<shape android:shape="rectangle">
<solid android:color="@color/background" />
</shape></item></layer-list>