在Canvas中drawText时怎样让他自动换行显示,
或者让它显示多行文本,不是在一行显示。

解决方案 »

  1.   

    如果你要这样, 原理很简单, 实现很麻烦。你要讲字符一个一个抽出来, 算出每个字符的高、宽及padding, 然后计算画到哪个字符后,一行排满了, 要讲剩下的字符画到下一行去。这是底层画字符串的方法, 这个用户用不到,因为一般UI系统都会将这个封装一下。 你用系统的就可以了, 不要直接在canvas上涂鸦。
      

  2.   

    能用控件实现的一般都不用java实现,以后改起来方便。
      

  3.   


    你指的用系统的是那个?
    是TextView吗?
    如果光用TextView就,其他的功能实现不了,
    我要做的是文本内容上下滚动,还有当前位置。
      

  4.   

    以前在j2me中画过,方法同1楼的一样。算好了就可以,不算很麻烦。
      

  5.   


    你好,
    怎样在原来的Canvas中继续画Paint?
    如果有10Line的话,要新建10个Paint吗?
    然后在Canvas中画10个Paint?
    Thanks
      

  6.   

    c.drawText(text, start, end, x, y, paint)
    用for语句计算x y 的坐标实现多行 
      

  7.   

    canvas是不是相当于ANDROID下的GDI接口?
      

  8.   


    不需要的啊,你写一个迭代方法,直接把你的文本传递过去。计算每一行可以展示的文本的宽度,如果超过屏幕宽,则换行展示。canvas,paint可以在迭代内重复绘制嘛。其实这样没必要在android中这么用。android比j2me里的简化很多,譬如可能你要应用到的滚动条之类的,一个scrollview直接搞定,不像j2me那样还要计算。