注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

你想快速掌握安卓编程吗

 
 
 

日志

 
 

[原创]用画布 (Canvas) 对象获取文本高度或宽度  

2014-03-10 19:07:17|  分类: B.文本 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
[原创]用画布 (Canvas) 对象获取文本高度或宽度 - 沉默蜂QQ793136625 - 沉默蜂
 


库 Core > 类 Canvas > 方法 MeasureStringHeight 

MeasureStringHeight ( Text As String, Typeface As Typeface, TextSize As float ) As float 
测量文字高度 

Returns the height of the given text. 
Example of drawing a blue text with white rectangle as the background: 
返回给定的文本高度. 
举例:绘制蓝色文本在白色矩形背景里: 

Dim Rect1 As Rect 
Dim width, height As Float 
Dim t As String 
t = "Text to write" 
width = Canvas1.MeasureStringWidth(t, Typeface.DEFAULT, 14) 
height = Canvas1.MeasureStringHeight(t, Typeface.DEFAULT, 14) 
Rect1.Initialize(100dip, 100dip, 100dip + width, 100dip + height) 
Canvas1.DrawRect(Rect1, Colors.White, True, 0) 
Canvas1.DrawText(t, Rect1.Left, Rect1.Bottom, Typeface.DEFAULT, 14, Colors.Blue, "LEFT")





库 Core > 类 Canvas > 方法 MeasureStringWidth 

MeasureStringWidth ( Text As String, Typeface As Typeface, TextSize As float ) As float 
测量字符串宽度 

Returns the width of the given text. 
Example of drawing a blue text with white rectangle as the background: 
返回字符串宽度 
举例:用白色矩形背景绘制蓝色文本: 

Dim Rect1 As Rect 
Dim width, height As Float 
Dim t As String 
t = "Text to write" 
width = Canvas1.MeasureStringWidth(t, Typeface.DEFAULT, 14) 
height = Canvas1.MeasureStringHeight(t, Typeface.DEFAULT, 14) 
Rect1.Initialize(100dip, 100dip, 100dip + width, 100dip + height) 
Canvas1.DrawRect(Rect1, Colors.White, True, 0) 
Canvas1.DrawText(t, Rect1.Left, Rect1.Bottom, Typeface.DEFAULT, 14, Colors.Blue, "LEFT")




下面的帖子中,方法SetHeader中就涉及到用画布对象测试各列的宽度
[原创]注解B4A表格控件模块(二)  
http://silentbees.blog.163.com/blog/static/22878903120142995253841/

Public Sub SetHeader(Values() As String) 

HeaderWidths(I) = cvs.MeasureStringWidth(Values(I), l.Typeface, cTextSize)  + 8dip
If HeaderWidths(I) > ColumnWidths(I) Then OR HeaderWidths(I) > ColumnWidths(I) Then
Change = 1
ColumnWidths(I) = Max(HeaderWidths(I), ColumnWidths(I))
Else If ColumnWidths(I) > HeaderWidths(I) AND ColumnWidths(I) > DataWidths(I) Then
Change = 1
ColumnWidths(I) = Max(HeaderWidths(I), DataWidths(I))
End If
  评论这张
 
阅读(380)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017