Saya mencoba mencari cara untuk mendefinisikan garis vertikal (tebal 1dp) untuk digunakan sebagai drawable.
Untuk membuat horisontal, itu cukup mudah:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
<stroke android:width="1dp" android:color="#0000FF"/>
<size android:height="50dp" />
</shape>
Pertanyaannya adalah, bagaimana cara membuat garis ini vertikal?
Ya, ada solusi, seperti menggambar bentuk persegi panjang 1px tebal, tapi itu mempersulit XML yang dapat ditarik, jika terdiri dari beberapa <item>
elemen.
Adakah yang punya peluang dengan ini?
MEMPERBARUI
Kasus masih belum terpecahkan. Namun, Bagi siapa saja yang melakukan perang salib dokumentasi Android - Anda mungkin menemukan ini berguna: Missing Android XML Manual
MEMPERBARUI
Saya tidak menemukan cara lain selain yang saya tandai sebagai benar. Meskipun demikian, triknya terasa agak "berat", jadi jika Anda mengetahui jawabannya, jangan lupa untuk berbagi;)
Anda dapat membuat sarang di dalam tag rotate.
Namun, satu-satunya masalah adalah tata letak params didefinisikan dalam tata letak Anda xml akan menjadi dimensi yang digunakan untuk menggambar bentuk aslinya. Berarti jika Anda ingin garis Anda menjadi 30dp tinggi, Anda perlu menentukan layout_width 30dp di tata letak Anda xml. Tetapi lebar akhir juga akan 30dp dalam kasus itu, yang kemungkinan tidak diinginkan untuk sebagian besar situasi. Ini pada dasarnya berarti lebar dan tinggi harus memiliki nilai yang sama, nilai panjang yang Anda inginkan untuk garis. Saya tidak tahu bagaimana cara memperbaikinya.
Ini tampaknya menjadi solusi "cara android", tetapi kecuali jika ada beberapa perbaikan atau solusi untuk masalah dimensi yang saya sebutkan maka ini kemungkinan tidak akan berhasil bagi kebanyakan orang. Yang benar-benar kita butuhkan adalah atribut orientasi di <shape /> atau <stroke />.
Anda juga dapat mencoba mereferensikan drawable lain di atribut tag rotate, seperti:
Namun saya belum menguji ini dan berharap memiliki masalah yang sama.
- EDIT -
Oh, aku benar-benar menemukan perbaikan. Anda dapat menggunakan margin negatif di layout xml Anda untuk menyingkirkan ruang ekstra yang tidak diinginkan. Seperti:
sumber
Anda dapat menggunakan atribut rotate
sumber
Bekerja untukku. Letakkan sebagai latar belakang tampilan dengan fill_parent atau ukuran tetap pada ketinggian dp
sumber
Saya datang dengan solusi yang berbeda. Idenya adalah untuk mengisi drawable terlebih dahulu dengan warna yang Anda inginkan menjadi garis dan kemudian mengisi seluruh area lagi dengan warna latar belakang saat menggunakan padding kiri atau kanan. Jelas ini hanya berfungsi untuk garis vertikal di paling kiri atau kanan gambar Anda.
sumber
showDividers="middle"
). Untuk mendapatkan pembagi 2dp, saya perlu menentukan diandroid:left="3dp"
sini.@android:color/transparent
alih-alih hardcoding@color/background_color
.wrap_content
.Saya pikir ini adalah solusi paling sederhana:
sumber
android:height
kesize
jika Anda ingin mengontrol juga dimensi itu.Saya perlu menambahkan pandangan saya secara dinamis / terprogram, jadi menambahkan tampilan tambahan akan menjadi rumit. Tinggi tampilan saya adalah WRAP_CONTENT, jadi saya tidak bisa menggunakan solusi persegi panjang. Saya menemukan posting blog di sini tentang memperluas TextView, mengesampingkan onDraw () dan melukis di baris, jadi saya menerapkannya dan berfungsi dengan baik. Lihat kode saya di bawah ini:
Saya membutuhkan garis vertikal di sebelah kiri, tetapi parameter drawline adalah
drawLine(startX, startY, stopX, stopY, paint)
sehingga Anda dapat menggambar garis lurus ke arah mana pun di tampilan. Maka dalam kegiatan saya, saya memilikiNoteTextView note = new NoteTextView(this);
Semoga ini bisa membantu.sumber
sangat sederhana ... untuk menambahkan garis vertikal di xml android ...
sumber
Tergantung, di mana Anda ingin memiliki garis vertikal, tetapi jika Anda ingin perbatasan vertikal misalnya, Anda dapat memiliki tampilan induk memiliki latar belakang yang dapat digambar khusus. Dan Anda kemudian dapat mendefinisikan gambar seperti ini:
Contoh ini akan membuat garis hitam tipis 1dp di sisi kanan tampilan, yang akan dapat digambar sebagai latar belakang.
sumber
sumber
Sepertinya tidak ada yang menyebutkan opsi ini:
sumber
Anda bisa menggunakan bentuk tetapi alih-alih garis, buat persegi panjang.
dan Dalam tata letak Anda gunakan ini ...
Anda mungkin harus bermain dengan lebar, tergantung pada ukuran tanda hubung, untuk membuatnya menjadi satu baris.
Semoga ini bisa membantu Ceria
sumber
sumber
Untuk membuat garis vertikal, cukup gunakan persegi panjang dengan lebar 1dp:
Jangan gunakan
stroke
, gunakansolid
(yang merupakan warna "isi") untuk menentukan warna garis.sumber
sumber