Android开发之TextView排版问题
2015-05-14 09:33
344 查看
下面直接是关于解决该问题的代码(根据别人的代码进行了修正以及测试,保证可以修改字体尺寸、颜色、根据padding调整,如果需要支持其他的格式可以将对应的属性添加至Paint类型的对象中):
1 public class NsTextView extends TextView { 2 private String text; 3 private float textSize; 4 private float paddingLeft; 5 private float paddingRight; 6 private int textColor; 7 private Paint paint1 = new Paint(); 8 private float textShowWidth; 9 10 public NsTextView(Context context, AttributeSet attrs) { 11 super(context, attrs); 12 text = this.getText().toString(); 13 textSize = this.getTextSize(); 14 textColor = this.getTextColors().getDefaultColor(); 15 paddingLeft = this.getPaddingLeft(); 16 paddingRight = this.getPaddingRight(); 17 paint1.setTextSize(textSize); 18 paint1.setColor(textColor); 19 paint1.setAntiAlias(true); 20 } 21 22 @Override 23 protected void onDraw(Canvas canvas) { 24 textShowWidth = this.getMeasuredWidth() - paddingLeft - paddingRight; 25 int lineCount = 0; 26 text = this.getText().toString(); 27 if (text == null) 28 return; 29 char[] textCharArray = text.toCharArray(); 30 float drawedWidth = 0; 31 float charWidth; 32 for (int i = 0; i < textCharArray.length; i++) { 33 charWidth = paint1.measureText(textCharArray, i, 1); 34 if (textCharArray[i] == '\n') { 35 lineCount++; 36 drawedWidth = 0; 37 continue; 38 } 39 if (textShowWidth - drawedWidth < charWidth) { 40 lineCount++; 41 drawedWidth = 0; 42 } 43 canvas.drawText(textCharArray, i, 1, paddingLeft + drawedWidth, 44 (lineCount + 1) * textSize, paint1); 45 drawedWidth += charWidth; 46 } 47 setHeight((int) ((lineCount + 1) * (int) textSize )); 48 } 49 }
相关文章推荐
- Android开发之TextView排版问题
- Android开发之Viewpager与TextView结合使用时不能滑动的问题
- 关于android开发ListView的Adapter的convertView中有EditText的问题
- Android开发技巧——TextView加载HTML的图片及代码显示问题
- Android开发技巧——TextView加载HTML的图片及代码显示问题
- JustifyTextView 解决TextView中英文混排排版问题,android文字排版不齐,
- 解决Android的TextView排版问题
- Android:解决TextView排版混乱问题
- android 开发:使得TextView文本左右两边都对齐--解决中英文对齐问题。
- android textview 排版混乱问题
- 诡异的Android TextView排版布局问题
- android EditText和TextView出现中文、英文等string串的排版问题
- android自定义view解决textview显示排版的问题
- Android实际开发问题10_自定义TextBasicView
- Android 开发关于Button或TextView控件英文字符全部显示大小写问题
- Android 解决TextView排版参差不齐的问题
- Android AutoWrapTextView 解决中英文排版问题
- Android AutoWrapTextView中英文排版问题的解决方法
- Android textView开头空两格问题,排版缩进2个汉字
- Android 解决TextView排版参差不齐的问题