textView排版文字對齊

2021-08-21 11:36:34 字數 1554 閱讀 7227

具有特殊字元半形全形字符時排版文字對齊

import android.content.context;

import android.graphics.canvas;

import android.graphics.paint;

import android.text.layout;

import android.text.staticlayout;

import android.text.textpaint;

import android.util.attributeset;

import android.widget.textview;

/** * 解決文字排版混亂參差不齊的問題

*/public

class

justifytextview

extends

textview

@override

protected

void

onlayout(boolean changed, int left, int top, int right, int bottom)

@override

protected

void

ondraw(canvas canvas)

paint.fontmetrics fm = paint.getfontmetrics();

int textheight = (int) (math.ceil(fm.descent - fm.ascent));

textheight = (int) (textheight * layout.getspacingmultiplier() + layout

.getspacingadd());

//解決了最後一行文字間距過大的問題

for (int i = 0; i < layout.getlinecount(); i++) else

} else

mliney += textheight;

} }private

void

drawscaledtext(canvas canvas, int linestart, string line, float linewidth)

int gapcount = line.length() - 1;

int i = 0;

if (line.length() > 2 && line.charat(0) == 12288

&& line.charat(1) == 12288)

float d = (mviewwidth - linewidth) / gapcount;

for (; i < line.length(); i++)

} private

boolean

isfirstlineofparagraph(int linestart, string line)

private

boolean

needscale(string line) else

}}

textview 文字排版問題,實現兩端對齊

compile me.codeboy.android align text view 2.3.0 android textisselectable true getrealtext cbaligntextviewutil.replacepunctuation string text 在設定cbali...

textview文字對齊換行問題

半形轉換為全形 半形轉換為全形 param input return public static string todbc string input if c i 65280 c i 65375 其他字元半形 33 126 與全形 65281 65374 的對應關係是 均相差65248 c i ch...

Android開發之TextView排版問題

下面直接是關於解決該問題的 根據別人的 進行了修正以及測試,保證可以修改字型尺寸 顏色 根據padding調整,如果需要支援其他的格式可以將對應的屬性新增至paint型別的物件中 1 public class nstextview extends textview 2122 override 23p...