安卓 如何竖排显示文字

m0_37646670 2019-08-23 09:28:39


用Rotation方法,会把文字折成2段转过来,我要变成一段
是不是只有一个个文字去处理,而我可能有非常多的文字

有大佬做过这种自定义textview吗,求教
...全文
620 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_37646670 2019-08-29
  • 打赏
  • 举报
回复
引用 8 楼 assky124 的回复:
感谢,我多此一举继承的是TextView,应该直接继承View类,方便操作多了
assky124 2019-08-29
  • 打赏
  • 举报
回复
自绘把画布旋转一下
assky124 2019-08-29
  • 打赏
  • 举报
回复

    var paint = Paint()
    override fun onDraw(canvas: Canvas?) {
        paint.color = Color.RED
        paint.style = Paint.Style.FILL
        paint.textSize = 50f
        canvas?.drawText("Hello World1",0f,50f,paint)
        canvas?.save()
        canvas?.rotate(90f,this.measuredWidth/2f,this.measuredHeight/2f)
        var x = (this.measuredWidth - this.measuredHeight) /2f
        //按中心旋转,绘图应该是长宽互换,且Android绘制文字的基准线,基本以文字底部为准,所以纵向偏移字体高度
        var y = (this.measuredHeight - this.measuredWidth) /2f + 50 
        canvas?.drawText("Hello World2",x,y,paint)
        canvas?.restore()
    }
m0_37646670 2019-08-29
  • 打赏
  • 举报
回复
引用 3 楼 只为搞笑 的回复:
如果内容基本都是纵向显示,是否可以考虑横屏呢? 旋转折行是因为文字容器的宽度计算还是以旋转前的宽度来预估的,所以考虑把文字容器宽度设置为屏幕高度,也可以解决问题
怎么重新设置画布的高为屏幕高度啊?
m0_37646670 2019-08-29
  • 打赏
  • 举报
回复
引用 5 楼 assky124 的回复:
自绘把画布旋转一下
重载OnDraw(Canvas canvas)方法 我发现里面的canvas已经有大小了 然后转画布, 但是怎么把画布宽高互换?
ink_s 2019-08-28
  • 打赏
  • 举报
回复
自定义View吧
只为搞笑 2019-08-28
  • 打赏
  • 举报
回复
如果内容基本都是纵向显示,是否可以考虑横屏呢? 旋转折行是因为文字容器的宽度计算还是以旋转前的宽度来预估的,所以考虑把文字容器宽度设置为屏幕高度,也可以解决问题
m-oj 应用层 2019-08-24
  • 打赏
  • 举报
回复
引用 楼主 m0_37646670 的回复:
用Rotation方法,会把文字折成2段转过来,我要变成一段 是不是只有一个个文字去处理,而我可能有非常多的文字 有大佬做过这种自定义textview吗,求教
折两段是因为垂直方向的长度不够,导致的换行吧
m0_37646670 2019-08-24
  • 打赏
  • 举报
回复
安卓为了适应不同设备的显示,顶层给你限制太多了

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧