自定义RichTextField的drawText方法如何根据文字大小换行

原创 2011年01月21日 11:55:00

可能标题很模糊,唉,我也说不清怎么表达。如果光是继承RichTextField,直接setText(str)就可以达到自动换行的效果。

但是我这里要用到drawText的方法,因为我需要我的文字显示在指定的x,y点上,并且还要画些东西,这样就不能用setText(),好像setText()是默认0,0,而且

drawText()无法自动换行?如果看官觉得我此文有误,请留言给我。

 

没有花太多时间去确认这个,我直接采用算像素,然后判断是否超过长度,超过则再次drawText。

Feelsina.twfont为str中单个汉字的最大像素。

 

//    private void writetext(Graphics g){
//       Font font;
//       font = Font.getDefault().derive(Font.PLAIN,Feelsina.twfontsize,Ui.UNITS_pt);
//       int d = font.getAdvance(mytext);
//       int l = mytext.length();
//       int i;
//
//       i = d/(Display.getWidth()-110);
//       if(i<1){
//                 g.drawText(mytext, 30, 30);
//            }
//            else {
//                String str = mytext;
//                for (int j=0;j<i+1;j++){
//                    int p = 0;
//                    int k = 0;
//                    boolean flag2 = false;
//                    if(str.length()>l/(i+1)+p){
//                        k =font.getAdvance(str.substring(0,l/(i+1)+p));
//                        while (k < (Display.getWidth()-110)) {
//                        p++;
//                        if((l/(i+1)+p)==str.length()){
//                            flag2 = true;
//                            break;
//                        }
//                        k =font.getAdvance(str.substring(0,l/(i+1)+p));
//                        }
//                        if(flag2)
//                            g.drawText(str, 30,30+j*Feelsina.twfont );
//                        else
//                            g.drawText(str.substring(0,l/(i+1)+p-1), 30,30+j*Feelsina.twfont );
//                        str = str.substring(l/(i+1)+p-1);
//                    }
//                    else
//                        g.drawText(str, 30,30+j*Feelsina.twfont );
//                }
//            }
//    }

 

 

android自定义View画文字的换行问题的解决

在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.drawText()方...
  • u013903024
  • u013903024
  • 2015年11月10日 11:23
  • 1820

DrawText中的自动换行功能

DrawText中的自动换行功能   使用DrawText函数输出文字,如果需要让输出的内容在指定矩形内自动换行,则可以使用DT_WORDBREAK选项。但根据API说明,该选项...
  • u014355440
  • u014355440
  • 2014年11月18日 09:14
  • 890

Canvas的drawText绘制文本不自动换行的解决

原文地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0915/1682.html使用Canvas的drawText绘制文本是...
  • superbigcupid
  • superbigcupid
  • 2016年08月18日 13:24
  • 3567

canvas drawText如何换行

用android的canvas drawText的时候,即使text包行\r\n,画出来的仍然不会换行。这时需要用到TextPaint TextPaint textPaint = new TextPa...
  • Android_Study_OK
  • Android_Study_OK
  • 2016年07月01日 14:27
  • 4486

android canvas drawText \r\n 换行

用android的canvas drawText的时候,即使text包行\r\n,画出来的仍然不会换行。 这时需要用到TextPaint TextPaint textPaint = n...
  • problc
  • problc
  • 2014年03月14日 22:52
  • 9171

MFC 更改绘制文字大小方法

CFont font; VERIFY(font.CreatePointFont(100,_T("宋体"),pDC));//创建字体宋体格式  100为字高 CFont*def_font = p...
  • loseleo
  • loseleo
  • 2012年01月30日 21:55
  • 3466

Android Canvas.drawText(...)自动换行

canvas.save();TextPaint textPaint = new TextPaint();textPaint.setTextSize(17);textPaint.setColor(Col...
  • fz_dev
  • fz_dev
  • 2016年05月24日 13:49
  • 1706

自定义控件之绘图篇(五) —— drawText()详解

前言 自定义控件之绘图篇(一) —— 概述及基本几何图形绘制 自定义控件之绘图篇(二) —— 路径及文字 自定义控件之绘图篇(三) —— 区域(Range) 自定义控件之绘图篇(四) —— Can...
  • Zsago
  • Zsago
  • 2017年03月22日 21:27
  • 452

android 二维码扫描界面 canvas drawText 换行居中

今天做项目的时候用到了zxing扫描二维码功能,根据美工效果图,需要绘制字体,文字很长,并且要居中,网上搜了资料,终于实现了功能 zxing实现扫描二维码功能,请参考这篇博客 http://...
  • jifashihan
  • jifashihan
  • 2015年12月15日 18:41
  • 1508

DrawText/DrawText,字符串换行和长字符串(word wrapping and long strings)

Hi all, got what seems like a really simple problem but can work out how to solve it.  Im coding up ...
  • tanlijun37
  • tanlijun37
  • 2006年07月15日 11:43
  • 5530
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义RichTextField的drawText方法如何根据文字大小换行
举报原因:
原因补充:

(最多只允许输入30个字)