Saya mencoba membuat garis putus-putus. Saya menggunakan ini sekarang untuk garis padat:
LinearLayout divider = new LinearLayout( this );
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, 2 );
divider.setLayoutParams( params );
divider.setBackgroundColor( getResources().getColor( R.color.grey ) );
Saya butuh sesuatu seperti ini, tetapi bertitik bukannya padat. Saya ingin menghindari membuat ratusan tata letak secara bergantian antara tata letak transparan dan tata letak solid.
canvas.drawLine()
. Sebagai alternatif untuk menonaktifkan akselerasi perangkat keras, Anda dapat menggunakannyacanvas.drawPath
.dp
sebagai gantipx
.android:layerType="software"
harus diatur pada ImageView.efek jalur diatur pada objek cat
Anda dapat membuat segala macam pola titik-titik dengan menyediakan lebih banyak angka dalam array int [] yang menentukan rasio dasbor dan celah. Ini adalah garis yang sederhana, sama-sama putus-putus.
sumber
Membuat garis putus-putus menggunakan XML.
Buat xml di folder yang dapat digambar dan berikan latar belakang itu ke item yang ingin Anda tetapkan batas bertitik.
Membuat Latar Belakang XML "dashed_border":
Menambahkan latar belakang itu ke item:
sumber
<corners android:radius="5dp" />
ke bentuk Anda. Lihat stackoverflow.com/a/41940609/1000551 untuk info lebih lanjutBuat xml (view_line_dotted.xml):
Tetapkan sebagai latar belakang tampilan Anda:
sumber
<item android:bottom="-1dp" android:left="-1dp" android:right="-1dp" >
, jika Anda menginginkan ketebalan garis 1dp garis horizontal.android:layerType="software"
ke tampilan atau tulisview.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
(lihat stackoverflow.com/questions/10843402/… ).Apa yang saya lakukan ketika saya ingin menggambar garis putus-putus adalah mendefinisikan dash_line.xml yang dapat ditarik :
Dan kemudian dalam tata letak hanya mendefinisikan tampilan dengan latar belakang sebagai dash_line . Catatan untuk menyertakan android: layerType = "software" , jika tidak maka tidak akan berfungsi.
sumber
android:layerType="software"
adalah hal yang saya cari! Bersulang!Saya memiliki kustom garis garis yang mendukung garis garis horizontal & vertikal. kode di bawah ini:
sumber
Dengan menggunakan kelas ini, Anda dapat menerapkan efek "putus-putus dan garis bawah" ke beberapa baris teks. untuk menggunakan DashPathEffect Anda harus mematikan hardwareAccelerated dari TextView Anda (meskipun metode DashPathEffect memiliki masalah dengan teks yang panjang). Anda dapat menemukan contoh proyek saya di sini: https://github.com/jintoga/Dashed-Underlined-TextView/blob/master/Untitle.png .
Hasil:
sumber
Jika Anda mencari garis vertikal, gunakan drawable ini.
Nilai bagian bawah dan kiri atas negatif menghilangkan sisi yang tidak diinginkan dari bentuk meninggalkan garis putus-putus tunggal.
Gunakan dalam tampilan seperti itu.
sumber
Saya telah menggunakan di bawah ini sebagai latar belakang untuk tata letak:
sumber
android:shape="rectangle"
bukannya line?Saya telah membuat garis putus-putus untuk EditText. Ini dia Buat xml baru Anda. mis. dashed_border.xml Kode di sini:
Dan gunakan file xml baru Anda di EditText Anda misalnya:
Bersulang! :)
sumber
Gunakan ShapeDrawable sebagai ganti LinearLayout dan mainkan dengan dashWidth dan dashGap
http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
sumber
Solusi Terbaik untuk Dotted Background bekerja dengan sempurna
sumber
Untuk efek Dotted pada Kanvas, atur atribut ini ke objek cat:
Dan ubah nilai 30 sesuai dengan yang Anda render: ini mewakili "jarak" antara setiap titik.
sumber
Satu-satunya hal yang bekerja untuk saya dan saya pikir itu adalah cara paling sederhana menggunakan Path dengan objek cat seperti ini:
Kemudian onDraw (): (reset panggilan penting jika Anda mengubah titik-titik antara panggilan ondraw, menyebabkan Path menyimpan semua gerakan)
sumber
Saya menyukai solusi dari Ruidge , tetapi saya membutuhkan lebih banyak kontrol dari XML. Jadi saya mengubahnya ke Kotlin dan menambahkan atribut.
1) Salin kelas Kotlin:
2) Buat file attr di direktori / res dan tambahkan ini
3) Tambahkan gaya ke file gaya
4) Sekarang Anda dapat menggunakan gaya default
atau atur atribut dalam XML
sumber
Tidak satu pun dari jawaban ini yang berhasil untuk saya. Sebagian besar jawaban ini memberi Anda batas setengah transparan. Untuk menghindari hal ini, Anda perlu membungkus wadah Anda sekali lagi dengan wadah lain dengan warna pilihan Anda. Berikut ini sebuah contoh:
Ini adalah tampilannya
dashed_border_layout.xml
dashed_border_in.xml
dashed_border_out.xml
sumber
Saya tidak tahu mengapa tetapi jawaban yang dipilih tidak bekerja untuk saya. Saya menulis seperti ini dan bekerja dengan baik.
Tentukan tampilan khusus:
Kemudian Anda bisa menggunakannya di xml Anda:
sumber
Saya telah membuat perpustakaan dengan tampilan khusus untuk menyelesaikan masalah ini, dan itu harus sangat mudah digunakan. Lihat https://github.com/Comcast/DahDit untuk lebih lanjut. Anda dapat menambahkan garis putus-putus seperti ini:
sumber
Mirip dengan tier777 di sini adalah solusi untuk garis horizontal:
Petunjuknya adalah
<item android:top="-1dp">
.Untuk menunjukkan garis putus-putus pada perangkat lama (<= API 21) Anda harus membuat tampilan dengan
android:layerType="software"
(lihat Android melacak garis putus-putus potensi gangguan ICS yang dapat ditarik ):Anda juga dapat menambahkan pandangan yang sama tanpa
android:layerType="software"
kelayout-v23
untuk kinerja yang lebih baik, tapi saya tidak yakin itu akan bekerja pada semua perangkat dengan API 23.sumber