Apa arti ellipsize di android?


199

Saya telah menambahkan EditTexttata letak saya, dan menambahkan petunjuk, dan membuatnya terpusat secara horizontal.

Saat menjalankan aplikasi, petunjuk itu tidak terlihat. Saya menemukan bahwa saya harus membuat ellipsizenilai TextViewmenjadi start:

<EditText
    android:id="@+id/number1EditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="start"
    android:ems="10"
    android:gravity="center_horizontal"
    android:hint="@string/hint1" />

Dalam dokumentasi Android, saya membaca:

Jika diatur, menyebabkan kata-kata yang lebih panjang dari tampilan lebar menjadi
elips bukannya patah di tengah.

Masalahnya adalah itu ellipsizetidak ditemukan dalam kamus. Adakah yang bisa menjelaskan kepada saya manfaat apa yang bisa kita peroleh dengan ellipsizeatribut? Dan apa perbedaan antara start, end, middle?


silakan merujuk jawaban saya yang diperbarui.
Rinkal Bhanderi

2
btw: kata sebenarnya "elips" dibuat-buat. Ini disebut "verbing a noun" dan merupakan cara umum untuk membentuk jargon komputer. Kata benda adalah "ellipse" yang saya anggap Anda tahu, dan itu dibuat menjadi kata kerja dengan menambahkan "-ize" yang berarti "untuk membuat", jadi Anda dapat menyimpulkan bahwa "ellipsize" adalah "menambahkan elips ke" sesuatu".
Michael Edenfield

4
Kesalahan ejaan lama, tidak pernah diperbaiki. Istilah ini sebenarnya harus "elipsis". Ellipse adalah kurva pada bidang yang mengelilingi dua titik fokus sedemikian rupa sehingga garis lurus ditarik dari salah satu titik fokus ke titik mana pun pada kurva. Ellipsis adalah tiga titik.
radley

Dokumentasi ellipseSize masih memiliki deskripsi yang hilang.
Talha

masih memotong setengah kata bagi saya. saya perlu kata-kata untuk tetap utuh. sial
filthy_wizard

Jawaban:


388

Anda dapat menemukan dokumentasi di sini .

Berdasarkan kebutuhan Anda, Anda dapat mencoba opsi yang sesuai.

untuk ellipsize , suatu neologisme, berarti mempersingkat teks menggunakan ellipsis , yaitu tiga titik ...atau lebih umum ligatur , untuk menggantikan bit yang dihilangkan.

Katakanlah nilai asli tampilan teks pf adalah aaabbbccc dan pas di dalam tampilan

startOutputnya adalah: ... bccc

endOutput akan menjadi: aaab ...

middleOutput akan menjadi: aa ... cc

marqueeOutputnya adalah: aaabbbccc geser otomatis dari kanan ke kiri


Terima kasih. Tapi saya sudah baca itu. Ini menggunakan kata "elips" di mana saya mencari artinya. Kata itu tidak dapat digunakan dalam definisinya !! Tolong ada penjelasan lebih lanjut?
Hamzeh Soboh

60

untuk pengalaman saya, Ellipsis hanya berfungsi jika di bawah dua atribut ditetapkan.

android:ellipsize="end"
android:singleLine="true"

untuk lebar tampilan teks, wrap_content atau match_parent keduanya harus baik.


2
Sebenarnya android:singleLinesudah tidak digunakan lagi sejak API level 3, jadi alih-alih gunakan android:maxLines. Harap dicatat:> jika singleLine dan inputType disediakan, flag inputType akan mengesampingkan nilai singleLine. Lihatlah dokumen di R.attr.html # singleLine
Filipe Bezerra de Sousa

1
@AlbertoGaona Saya perhatikan bahwa itu tidak berfungsi jika android: ellipsize = "start" dan android: maxLines = "2" (atau lebih). Saya belum melihat titik pada awalnya meskipun teksnya terlalu panjang.
ka3ak

17

How to Add an ellipsis in a TextView

android: ellipsize ditambahkan di API Level 1. Ellipsis adalah tiga periode berturut-turut. (...).

Di Xml Anda

 <TextView
       ....
       android:text="Hi I am Amiyo,you can see how to ellipse works."
       android:ellipsize = "end"  
   />

Pada titik ini, elipsis belum akan ditampilkan karena TextView diatur untuk diperluas secara default secara default ketika teks baru dimasukkan. Anda perlu membatasi TextView dengan beberapa cara. Lakukan ini, Anda dapat menggunakan salah satu dari Anda TextView a scrollHorizontally, minLines, or maxLinesuntuk memiliki tampilan elipsis.

Untuk membuat elips:

    at the end: this is how it would...     
   use: android:ellipsize = "end"

Dan

 in the middle: this is ...how it would
use: android:ellipsize = "middle"

Dan

 at the start: ...this is how it would
use: android:ellipsize = "start"

Dan

 to have no ellipse
use: android:ellipsize = "none"

Mohon diperhatikan:

 Do not use android:singeLine = "true", it is deprecated.
android:maxLines = "1" will not display the three dots (...)
android:lines = "1" will not display the three dots (...)

Untuk lebih jelasnya Anda dapat mengunjungi di sini

http://developer.android.com/reference/android/widget/TextView.html#attr_android%3aellipsize


10

Sebuah ellipsis adalah tiga periode berturut-turut ...

TextView akan menggunakan elipsis ketika itu tidak dapat diperluas untuk menampilkan semua teksnya. Atribut ellipsizedmenentukan posisi tiga titik jika perlu.


5

Teks:

 This is my first android application and
 I am trying to make a funny game,
 It seems android is really very easy to play.

Misalkan di atas adalah Anda teks dan jika Anda menggunakan ellipsize's startatribut itu akan terlihat seperti ini

This is my first android application and
...t seems android is really very easy to play.

dengan endatribut

 This is my first android application and
 I am trying to make a funny game,...

3

berikut adalah contoh tentang cara kerja ellipsize tanpa menggunakan deprecated android:singleLine="true"dalam ConstraintLayout:

<TextView
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:textSize="13sp"
   android:ellipsize="end"
   android:maxLines="2"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintStart_toStartOf="parent"
   tools:text="long long long long long long text text text" />

ingat jika Anda memiliki teks yang seharusnya dalam satu baris, maka ubah maxLines menjadi 1.


Terima kasih solusi ini memperbaiki masalah saya. Kuncinya android:layout_width="0dp"bukan android:layout_width="wrap_content". Catatan ini berlaku karena saya menggunakan a ConstraintLayout. Juga dibahas di sini stackoverflow.com/a/48149405/2848676
Michael Osofsky

1

Catatan: teks Anda harus lebih besar dari kotak penampung untuk hal-hal berikut ini yang harus tenda:

 android:ellipsize="marquee"    

1

Setel properti ini untuk mengedit teks. Elipsize berfungsi dengan menonaktifkan teks edit

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"

atau setKeyListener (null);


set di atas disebutkan semua properti dan setKeyListener (nol) kecuali properti yang dapat diedit.
Mubarak

0

Gunakan ellipsize ketika Anda memiliki lebar tetap, maka itu akan secara otomatis memotong teks & menampilkan ellipsis di akhir,

itu tidak akan berfungsi jika Anda mengatur layout_width sebagai wrap_content & match_parent.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.