@Jimbo jawaban benar benar bekerja untuk kasus saya pada inputtext dan textview untuk bahasa arab dari kanan ke kiri input dan tampilan tetapi untuk input teks saya harus menambahkan juga gravitasi = "kanan"
Setelah analisis lebih lanjut, Anda dapat memberikan suntikan android: gravity = "fill_horizontal". Itu digambarkan sebagai "Tumbuhkan ukuran horizontal objek jika diperlukan sehingga benar-benar mengisi wadahnya", tetapi saya tidak tahu bagaimana mereka "menumbuhkan" teks.
CommonsWare
8
android: gravity = "fill_horizontal" juga tidak berfungsi. Sepertinya android tidak mendukung pembenaran setelah semua, oh baik :)
@CommonsWare Sekarang ada cara yang tepat untuk membenarkan teks?
John R
1
Sobat, saya hidup dengan tampilan web yang berat untuk mencapai hal ini, dan percayalah, UI saya meminta beberapa hal baru yang belum ditambahkan ke API, karena sangat lambat untuk komponen seperti obrolan dalam listview.
nobalG
156
Jawaban @CommonsWare benar. Android 8.0+ mendukung "Pembenaran Penuh" (atau hanya "Pembenaran", karena kadang-kadang disebut secara ambigu).
Android juga mendukung "Flush Left / Right Text Alignment". Lihat artikel wikipedia tentang Justifikasi untuk perbedaannya. Banyak orang mempertimbangkan konsep 'justifikasi' untuk mencakup justifikasi penuh serta perataan teks kiri / kanan, yang akhirnya mereka cari ketika ingin melakukan perataan teks kiri / kanan. Jawaban ini menjelaskan cara mencapai perataan teks kiri / kanan.
Dimungkinkan untuk mencapai Alignment Teks Kiri / Kanan rata (berlawanan dengan Pembenaran Penuh, karena pertanyaannya adalah tentang). Untuk menunjukkan saya akan menggunakan formulir 2-kolom dasar (label di kolom kiri dan bidang teks di kolom kanan) sebagai contoh. Dalam contoh ini teks dalam label di kolom kiri akan rata kanan sehingga mereka muncul rata terhadap bidang teks mereka di kolom kanan.
Di tata letak XML Anda bisa mendapatkan elemen TextView sendiri (kolom kiri) untuk menyelaraskan ke kanan dengan menambahkan atribut berikut di dalam semua TextViews:
Namun, jika teks membungkus ke beberapa baris, teks akan tetap rata kiri di dalam TextView. Menambahkan atribut berikut membuat teks aktual rata rata (kiri kasar) di dalam TextView:
Jadi atribut gravitasi menentukan cara menyelaraskan teks di dalam TextView layout_gravity menentukan cara menyelaraskan / tata letak elemen TextView itu sendiri.
Jika saya mengerti benar, dan diberi hasil pengujian ini, semua ini dilakukan adalah menyelaraskan teks ke kiri atau kanan. Ini tidak membenarkan teksnya, bukan?
Paul Lammertsma
14
Luar biasa. Untuk menambahkan, jika Anda ingin pembenaran pusat, Anda dapat melakukannya android:layout_gravity="center_horizontal|center"android:gravity="center".
Luis A. Florit
jelas bekerja untuk kasus saya pada inputtext dan textview untuk bahasa arab dari input dan display kanan ke kiri
shareef
1
Ini hanya keberpihakan, bukan pembenaran. Baca tautan Wikipedia itu dengan cermat. Perbedaan antara berbagai jenis pembenaran hanya memengaruhi baris terakhir paragraf. Tidak ada justifikasi kiri / kanan / tengah untuk paragraf yang hanya memiliki satu baris.
Karu
lalu mengapa bahkan menjawabnya di sini jika ini bukan tentangjustify
user924
136
Untuk membenarkan teks di android saya menggunakan WebView
<stringname="hello">
<![CDATA[
<html><head></head><bodystyle="text-align:justify;color:gray;background-color:black;">
Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc pellentesque, urna
nec hendrerit pellentesque, risus massa
</body></html>
]]>
</string>
Saya belum dapat mengunggah gambar untuk membuktikannya, tetapi "berhasil untuk saya".
Solusi yang bagus di sini. FWIW Anda tidak membutuhkan sebagian besar html tambahan. Tag tubuh dengan perataan teks sudah cukup.
gnac
5
Ini bekerja dengan baik. Perhatikan bahwa Anda dapat membuat latar belakang transparan dengan mengikuti view.loadData()dengan view.setBackgroundColor("#00000000").
Paul Lammertsma
Namun, saya belum berhasil membuatnya memuat font / jenis huruf khusus. Saya sudah mencoba ini dan ini saran, tanpa keberuntungan.
Paul Lammertsma
2
Seperti yang saya sebutkan di utas tersebut, saya menemukan resolusi: jika Anda membuat file HTML dan meletakkannya di aset, memuatnya melalui view.loadUrl()karya, sedangkan view.loadData()tidak. Saya tidak tahu mengapa yang terakhir tidak.
Paul Lammertsma
1
@ PaulLammertsma, setBackgroundColor (0x00000000) lebih suka format yang benar untuk pengaturan latar belakang transparan.
richey
100
DIPERBARUI
Kami telah membuat kelas sederhana untuk ini. Saat ini ada dua metode untuk mencapai apa yang Anda cari. Keduanya TIDAK memerlukan WEBVIEW dan DUKUNGAN SPANNABLES .
Benar-benar membantu, tetapi menggunakannya, TextViews saya tidak menyimpan format asli, saya menolak: margin, gaya teks, dan saya pikir ukuran teks juga, Plese terus bekerja di dalamnya, harus menjadi bantuan yang sangat hebat
Leonardo Sapuy
Ya saya tidak bisa membuat kelas-kelas itu. salah satu dari mereka tidak memiliki nama paket, yang lain memberikan beberapa kesalahan kuning. Sebenarnya saya tidak bisa percaya.
mehmet
Lib bagus, tapi saya masih tidak tahu cara menambahkan format apa pun ke Teks menggunakan perpustakaan ini.
Semanticer
4
Terima kasih atas pustaka bersama yang hebat ini, tetapi tidak dapat mendukung teks Persia atau Arab. Ketika saya menetapkan arah, kata saya menarik dari yang terakhir ke yang awal, alih-alih mulai dari yang terakhir. Maksud saya ini: Firman saya adalah: "سلام" dan gambarnya seperti ini: "مالس". (jika Anda tidak mengerti bahasa Persia, lihat contoh ini: izinkan saya "1234" -> "4321")
Naruto Uzumaki
1
Berdasarkan scrollView ... Solusi yang bagus namun tidak dapat menemukan jawaban yang membuatnya mungkin dengan textview. :(
superUser
88
TextView di Android O menawarkan pembenaran penuh (alignment tipografi baru) itu sendiri.
Mari kita berharap itu akan dipindahkan kembali ke perpustakaan dukungan kemudian O :)
Stefan Haustein
2
tolong tambahkan perpustakaan di sini !!
Kunal Dharaiya
4
bagaimana cara membenarkan menggunakan XML?
Vikash Parajuli
14
Anda dapat menggunakan android: justificationMode = "inter_word" dalam xml.
Christian D
5
API 26 diperlukan untuk android: justificationMode.
Bink
42
Anda dapat menggunakan proyek JustifiedTextView untuk Android di github. ini adalah tampilan khusus yang mensimulasikan teks yang dibenarkan untuk Anda. Ini mendukung Android 2.0+ dan bahasa kanan ke kiri.
bagaimana kita bisa menambahkan teks kita sendiri?
Karan
Silakan lihat sampel di github.
Saeed Zarinfam
hai Saeed, tnx atas bantuan Anda, apakah ada cara untuk mendukung tampilan teks yang dapat dip spannable ?!
Hamid Reza
@SaeedZarinfam Saya mencoba menggunakan "JustifiedTextView untuk Android" tetapi saya mendapat kesalahan pada tag xml ir.noghteh.JustifiedTextView akan tolong bantu saya dalam pertanyaan ini stackoverflow.com/questions/37911376/…
Jumong
30
Saya menulis basis widget pada tampilan teks asli untuk melakukannya.
Saya telah merekomendasikan yang ini, sebagian besar karena berbasis di tampilan teks asli dari android resmi SDK, yang menurut pendapat pribadi saya itu adalah cara yang lebih ringan daripada teknik tampilan web yang banyak orang posting mengenai topik umum ini. Jika Anda membuat aplikasi yang membutuhkan ingatan bijaksana, misalnya menggunakan objek tampilan daftar, Anda dapat mempertimbangkan untuk menggunakan sesuatu seperti ini. Ï sudah mencobanya, dan berfungsi seperti yang diharapkan. Jika Anda orang lain yang lebih tahu seperti ini, silakan bagikan pengalaman Anda kepada saya.
superUser
Kerja bagus btw. Apa yang saya cari.
superUser
5
tidak mendukung bahasa RTL seperti persia
tembak dalam lubang
1
@ Frank Cheng Perpustakaan Sangat Berguna. Saya mendapatkan banyak ruang di akhir paragraf. Bagaimana saya bisa memperbaikinya?
iSrinivasan27
1
bekerja untuk saya, tetapi baris terakhir dari tampilan teks terputus. Saya harus tetap padding 5 untuk tampilan teks.
TharakaNirmana
23
Saya menemukan cara untuk menyelesaikan masalah ini, tetapi ini mungkin bukan rahmat, tetapi efeknya tidak buruk.
Prinsipnya adalah mengganti spasi setiap baris ke ImageSpan dengan lebar tetap (warnanya transparan).
WebView view =(WebView) findViewById(R.id.textContent);String text;
text ="<html><body><p align=\"justify\">";
text+="This is the text will be justified when displayed!!!";
text+="</p></body></html>";
view.loadData(text,"text/html","utf-8");
Ini dapat memecahkan masalah Anda. Sepenuhnya bekerja untuk saya.
Inilah cara saya melakukannya, saya pikir cara paling elegan yang saya bisa. Dengan solusi ini, satu-satunya hal yang perlu Anda lakukan di tata letak adalah:
tambahkan xmlnsdeklarasi tambahan
ubah-Mu TextView sumber teks namespace Anda dari android ke namespace baru Anda
ganti TextViewdengan Andax.y.z.JustifiedTextView
Ini kodenya. Bekerja dengan sangat baik pada ponsel saya (Galaxy Nexus Android 4.0.2, Galaxy Teos Android 2.1). Tentu saja merasa bebas untuk mengganti nama paket saya dengan milik Anda.
/assets/justified_textview.css :
body {
font-size:1.0em;
color: rgb(180,180,180);
text-align: justify;}@media screen and(-webkit-device-pixel-ratio:1.5){/* CSS for high-density screens */
body {
font-size:1.05em;}}@media screen and(-webkit-device-pixel-ratio:2.0){/* CSS for extra high-density screens */
body {
font-size:1.1em;}}
Kita perlu mengatur rendering ke perangkat lunak untuk mendapatkan latar belakang transparan pada Android 3+. Oleh karena itu coba-coba untuk Android versi lama.
Semoga ini membantu!
PS: mohon jangan berguna untuk menambahkan ini ke seluruh aktivitas Anda di Android 3+ untuk mendapatkan perilaku yang diharapkan: android:hardwareAccelerated="false"
Ini adalah solusi berbasis webView. Setiap orang telah menemukan berdasarkan textview, mengingat textview lebih ringan daripada tampilan web dan scrollview.
superUser
9
Sangat Sederhana. Kita dapat melakukannya di file xml
Meskipun masih belum menyelesaikan teks yang dibenarkan, kini Anda dapat menyeimbangkan panjang garis menggunakan android:breakStrategy="balanced"dari API 23 dan seterusnya
Tambahkan kelas di atas ke folder src Anda dan gunakan kode sampel ini untuk menambah tata letak Anda:
JustifiedTextView jtv=newJustifiedTextView(getApplicationContext(),"Lorem ipsum dolor sit amet... ");LinearLayout place =(LinearLayout) findViewById(R.id.book_profile_content);
place.addView(jtv);
publicclassTextViewExextendsTextView{privatePaint paint =newPaint();privateString[] blocks;privatefloat spaceOffset =0;privatefloat horizontalOffset =0;privatefloat verticalOffset =0;privatefloat horizontalFontOffset =0;privatefloat dirtyRegionWidth =0;privateboolean wrapEnabled =false;int left, top, right, bottom =0;privateAlign _align =Align.LEFT;privatefloat strecthOffset;privatefloat wrappedEdgeSpace;privateString block;privateString wrappedLine;privateString[] lineAsWords;privateObject[] wrappedObj;privateBitmap cache =null;privateboolean cacheEnabled =false;publicTextViewEx(Context context,AttributeSet attrs,int defStyle){super(context, attrs, defStyle);// set a minimum of left and right padding so that the texts are not too// close to the side screen// this.setPadding(10, 0, 10, 0);}publicTextViewEx(Context context,AttributeSet attrs){super(context, attrs);// this.setPadding(10, 0, 10, 0);}publicTextViewEx(Context context){super(context);// this.setPadding(10, 0, 10, 0);}@Overridepublicvoid setPadding(int left,int top,int right,int bottom){// TODO Auto-generated method stubsuper.setPadding(left +10, top, right +10, bottom);}@Overridepublicvoid setDrawingCacheEnabled(boolean cacheEnabled){this.cacheEnabled = cacheEnabled;}publicvoid setText(String st,boolean wrap){
wrapEnabled = wrap;super.setText(st);}publicvoid setTextAlign(Align align){
_align = align;}@SuppressLint("NewApi")@Overrideprotectedvoid onDraw(Canvas canvas){// If wrap is disabled then,// request original onDrawif(!wrapEnabled){super.onDraw(canvas);return;}// Active canas needs to be set// based on cacheEnabledCanvas activeCanvas =null;// Set the active canvas based on// whether cache is enabledif(cacheEnabled){if(cache !=null){// Draw to the OS provided canvas// if the cache is not empty
canvas.drawBitmap(cache,0,0, paint);return;}else{// Create a bitmap and set the activeCanvas// to the one derived from the bitmap
cache =Bitmap.createBitmap(getWidth(), getHeight(),Config.ARGB_4444);
activeCanvas =newCanvas(cache);}}else{// Active canvas is the OS// provided canvas
activeCanvas = canvas;}// Pull widget properties
paint.setColor(getCurrentTextColor());
paint.setTypeface(getTypeface());
paint.setTextSize(getTextSize());
paint.setTextAlign(_align);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);// minus out the paddings pixel
dirtyRegionWidth = getWidth()- getPaddingLeft()- getPaddingRight();int maxLines =Integer.MAX_VALUE;int currentapiVersion = android.os.Build.VERSION.SDK_INT;if(currentapiVersion >= android.os.Build.VERSION_CODES.JELLY_BEAN){
maxLines = getMaxLines();}int lines =1;
blocks = getText().toString().split("((?<=\n)|(?=\n))");
verticalOffset = horizontalFontOffset = getLineHeight()-0.5f;// Temp// fix
spaceOffset = paint.measureText(" ");for(int i =0; i < blocks.length && lines <= maxLines; i++){
block = blocks[i];
horizontalOffset =0;if(block.length()==0){continue;}elseif(block.equals("\n")){
verticalOffset += horizontalFontOffset;continue;}
block = block.trim();if(block.length()==0){continue;}
wrappedObj =TextJustifyUtils.createWrappedLine(block, paint,
spaceOffset, dirtyRegionWidth);
wrappedLine =((String) wrappedObj[0]);
wrappedEdgeSpace =(Float) wrappedObj[1];
lineAsWords = wrappedLine.split(" ");
strecthOffset = wrappedEdgeSpace !=Float.MIN_VALUE ? wrappedEdgeSpace
/(lineAsWords.length -1):0;for(int j =0; j < lineAsWords.length; j++){String word = lineAsWords[j];if(lines == maxLines && j == lineAsWords.length -1){
activeCanvas.drawText("...", horizontalOffset,
verticalOffset, paint);}elseif(j ==0){// if it is the first word of the line, text will be drawn// starting from right edge of textviewif(_align ==Align.RIGHT){
activeCanvas.drawText(word, getWidth()-(getPaddingRight()), verticalOffset, paint);// add in the paddings to the horizontalOffset
horizontalOffset += getWidth()-(getPaddingRight());}else{
activeCanvas.drawText(word, getPaddingLeft(),
verticalOffset, paint);
horizontalOffset += getPaddingLeft();}}else{
activeCanvas.drawText(word, horizontalOffset,
verticalOffset, paint);}if(_align ==Align.RIGHT)
horizontalOffset -= paint.measureText(word)+ spaceOffset
+ strecthOffset;else
horizontalOffset += paint.measureText(word)+ spaceOffset
+ strecthOffset;}
lines++;if(blocks[i].length()>0){
blocks[i]= blocks[i].substring(wrappedLine.length());
verticalOffset += blocks[i].length()>0? horizontalFontOffset
:0;
i--;}}if(cacheEnabled){// Draw the cache onto the OS provided// canvas.
canvas.drawBitmap(cache,0,0, paint);}}}
Sekarang, jika Anda menggunakan textView biasa seperti:
Di android, untuk meninggalkan justifikasi teks dan tidak memiliki pemotongan warna latar belakang, coba ini, itu bekerja untuk saya, menghasilkan hasil yang konsisten pada android, ff, yaitu & chrome tetapi Anda harus mengukur ruang yang tersisa di antara untuk teks saat menghitung padding.
Android belum mendukung pembenaran penuh. Kita dapat menggunakan Webview dan membenarkan HTML alih-alih menggunakan textview. Ini bekerja dengan sangat baik. Jika kalian tidak jelas, jangan ragu untuk bertanya kepada saya :)
Tidak, itu pusat teks. Itu tidak membenarkannya. Mengutip Wikipedia : "Dalam teks yang dibenarkan, spasi di antara kata-kata, dan, pada tingkat yang lebih rendah, antara mesin terbang atau huruf (kerning), diregangkan atau kadang-kadang dikompresi untuk membuat teks sejajar dengan margin kiri dan kanan."
CommonsWare
teks tidak dibenarkan oleh kode Anda tetapi tengah horizontal teks
Jawaban:
Saya tidak percaya Android mendukung pembenaran penuh.
UPDATE 2018-01-01 : Android 8.0+ mendukung mode justifikasi dengan
TextView
.sumber
Jawaban @CommonsWare benar. Android 8.0+ mendukung "Pembenaran Penuh" (atau hanya "Pembenaran", karena kadang-kadang disebut secara ambigu).
Android juga mendukung "Flush Left / Right Text Alignment". Lihat artikel wikipedia tentang Justifikasi untuk perbedaannya. Banyak orang mempertimbangkan konsep 'justifikasi' untuk mencakup justifikasi penuh serta perataan teks kiri / kanan, yang akhirnya mereka cari ketika ingin melakukan perataan teks kiri / kanan. Jawaban ini menjelaskan cara mencapai perataan teks kiri / kanan.
Dimungkinkan untuk mencapai Alignment Teks Kiri / Kanan rata (berlawanan dengan Pembenaran Penuh, karena pertanyaannya adalah tentang). Untuk menunjukkan saya akan menggunakan formulir 2-kolom dasar (label di kolom kiri dan bidang teks di kolom kanan) sebagai contoh. Dalam contoh ini teks dalam label di kolom kiri akan rata kanan sehingga mereka muncul rata terhadap bidang teks mereka di kolom kanan.
Di tata letak XML Anda bisa mendapatkan elemen TextView sendiri (kolom kiri) untuk menyelaraskan ke kanan dengan menambahkan atribut berikut di dalam semua TextViews:
Namun, jika teks membungkus ke beberapa baris, teks akan tetap rata kiri di dalam TextView. Menambahkan atribut berikut membuat teks aktual rata rata (kiri kasar) di dalam TextView:
Jadi atribut gravitasi menentukan cara menyelaraskan teks di dalam TextView layout_gravity menentukan cara menyelaraskan / tata letak elemen TextView itu sendiri.
sumber
android:layout_gravity="center_horizontal|center"
android:gravity="center"
.justify
Untuk membenarkan teks di android saya menggunakan WebView
dan html.
Saya belum dapat mengunggah gambar untuk membuktikannya, tetapi "berhasil untuk saya".
sumber
view.loadData()
denganview.setBackgroundColor("#00000000")
.view.loadUrl()
karya, sedangkanview.loadData()
tidak. Saya tidak tahu mengapa yang terakhir tidak.DIPERBARUI
Kami telah membuat kelas sederhana untuk ini. Saat ini ada dua metode untuk mencapai apa yang Anda cari. Keduanya TIDAK memerlukan WEBVIEW dan DUKUNGAN SPANNABLES .
PERPUSTAKAAN : https://github.com/bluejamesbond/TextJustify-Android
DUKUNGAN : Android 2.0 hingga 5.X
MENDIRIKAN
SCREENSHOT
sumber
TextView
diAndroid O
menawarkan pembenaran penuh (alignment tipografi baru) itu sendiri.Anda hanya perlu melakukan ini:
Kotlin
Jawa
standarnya adalah
JUSTIFICATION_MODE_NONE
.sumber
Anda dapat menggunakan proyek JustifiedTextView untuk Android di github. ini adalah tampilan khusus yang mensimulasikan teks yang dibenarkan untuk Anda. Ini mendukung Android 2.0+ dan bahasa kanan ke kiri.
sumber
Saya menulis basis widget pada tampilan teks asli untuk melakukannya.
github
sumber
Saya menemukan cara untuk menyelesaikan masalah ini, tetapi ini mungkin bukan rahmat, tetapi efeknya tidak buruk.
Prinsipnya adalah mengganti spasi setiap baris ke ImageSpan dengan lebar tetap (warnanya transparan).
Saya menaruh kode di GitHub: https://github.com/twiceyuan/TextJustification
Gambaran:
sumber
Layout XML: nyatakan WebView bukan TextView
Kode Java: atur data teks ke WebView
Ini dapat memecahkan masalah Anda. Sepenuhnya bekerja untuk saya.
sumber
Inilah cara saya melakukannya, saya pikir cara paling elegan yang saya bisa. Dengan solusi ini, satu-satunya hal yang perlu Anda lakukan di tata letak adalah:
xmlns
deklarasi tambahanTextView
sumber teks namespace Anda dari android ke namespace baru AndaTextView
dengan Andax.y.z.JustifiedTextView
Ini kodenya. Bekerja dengan sangat baik pada ponsel saya (Galaxy Nexus Android 4.0.2, Galaxy Teos Android 2.1). Tentu saja merasa bebas untuk mengganti nama paket saya dengan milik Anda.
/assets/justified_textview.css :
/res/values/attrs.xml :
/res/layout/test.xml :
/src/net/bicou/myapp/widget/JustifiedTextView.java :
Kita perlu mengatur rendering ke perangkat lunak untuk mendapatkan latar belakang transparan pada Android 3+. Oleh karena itu coba-coba untuk Android versi lama.
Semoga ini membantu!
PS: mohon jangan berguna untuk menambahkan ini ke seluruh aktivitas Anda di Android 3+ untuk mendapatkan perilaku yang diharapkan:
android:hardwareAccelerated="false"
sumber
Sangat Sederhana. Kita dapat melakukannya di file xml
sumber
Meskipun masih belum menyelesaikan teks yang dibenarkan, kini Anda dapat menyeimbangkan panjang garis menggunakan
android:breakStrategy="balanced"
dari API 23 dan seterusnyahttp://developer.android.com/reference/android/widget/TextView.html#attr_android:breakStrategy
sumber
Saya menulis kelas saya sendiri untuk menyelesaikan masalah ini, Ini dia Just Anda harus memanggil fungsi justify statis yang membutuhkan dua argumen
//Aktifitas utama
// TextJustificationClass
// XML
sumber
FILL_HORIZONTAL
setara denganCENTER_HORIZONTAL
. Anda dapat melihat potongan kode ini dalam kode sumber textview:sumber
Ada CustomView untuk masalah ini, tampilan teks khusus ini mendukung Tampilan Teks yang Dibenarkan.
Loot at this: JustifiedTextView
Tambahkan kelas di atas ke folder src Anda dan gunakan kode sampel ini untuk menambah tata letak Anda:
sumber
lihat di sini di github
Impor saja dua file "TextJustifyUtils.java" dan "TextViewEx.java" di proyek Anda.
dan
Sekarang, jika Anda menggunakan textView biasa seperti:
Cukup gunakan
Tentukan variabel dan set justify true,
sumber
Teks Android Membenarkan Untuk TextView XML
Cukup android teks-justify menggunakan dalam XML. Anda cukup menerapkan di widget textview.
Defaultnya adalah
android:justificationMode="none"
sumber
Saya pikir ada dua opsi:
Gunakan sesuatu seperti Pango yang berspesialisasi dalam hal ini melalui NDK dan render teks ke OpenGL atau permukaan lainnya.
Gunakan Paint.measureText () dan teman-teman untuk mendapatkan panjang kata dan meletakkannya secara manual di atas Kanvas dalam tampilan kustom.
sumber
Di android, untuk meninggalkan justifikasi teks dan tidak memiliki pemotongan warna latar belakang, coba ini, itu bekerja untuk saya, menghasilkan hasil yang konsisten pada android, ff, yaitu & chrome tetapi Anda harus mengukur ruang yang tersisa di antara untuk teks saat menghitung padding.
Retas adalah
padding-right:1000px;
yang mendorong teks ke kiri ekstrim.Setiap upaya ke kiri atau membenarkan kode dalam css atau html menghasilkan latar belakang yang hanya setengah lebar.
sumber
Untuk memformat html Anda tidak perlu memanggil Webkit, Anda dapat menggunakannya
Html.fromHtml(text)
untuk melakukan pekerjaan itu.Sumber: http://developer.android.com/guide/topics/resources/string-resource.html
sumber
Android belum mendukung pembenaran penuh. Kita dapat menggunakan Webview dan membenarkan HTML alih-alih menggunakan textview. Ini bekerja dengan sangat baik. Jika kalian tidak jelas, jangan ragu untuk bertanya kepada saya :)
sumber
WebView
transparent
. Saya memiliki gambar latar belakang.Coba solusi ini di tautan di bawah ini buat saja kelas itu di folder proyek dan gunakan. itu berfungsi dengan baik untuk saya :)
Membenarkan teks dalam aplikasi Android menggunakan WebView tetapi menghadirkan antarmuka seperti TextView?
sumber
TextView Content Justification: Mudahnya, gunakan saja android: justificationMode = "inter_word" di dalam tag TextView Anda.
sumber
Coba gunakan <
RelativeLayout >
(pastikan untuk fill_parent), lalu tambahkanandroid:layout_alignParentLeft="true"
danandroid:layout_alignParentRight="true"
ke elemen yang Anda inginkan di luar KIRI & KANAN.BLAM, dibenarkan!
sumber
Anda harus mengatur
dan
sumber
Ini tidak benar-benar membenarkan teks Anda tetapi
adalah pilihan terbaik yang Anda miliki.
sumber