办法有很多种,先一一罗列:
1)使用native.showWebPopup(),用浏览器来打开。
这种办法,排版灵活,而且可以使用富文本,显示效果丰富多样。缺点是需要临时创建html文件,使用起来有点不方便。
2)使用native.newTextBox()
这个办法排版,使用比较简单,排版效果好,但是因为corona所有的本地UI控件都是始终显示在display Object之上的,无法加入到group中进行管理,所以需要单独进行控制,有点麻烦。而且在android下,超出控件高度之后会无法通过滑动来显示。
3)自己计算文字宽度,切割字符串
这个办法比较灵活,你可能会用到以下几个函数。
function wlen( s )
local len,k=0,1
while k<=#s do
len=len+1
if string.byte(s,k)<=190 then k=k+1 else k=k+2 end
end
return len
end
function cut(str, len)
local t = {}
local ut = ustring(str)
local lastIndex = 1
local function getStr(len)
local ret = ""
local l = 0
while true do
local char = ut[lastIndex]
ret = ret .. char
if string.byte(char) <= 127 then
l = l + 1
else
l = l + 2
end
lastIndex = lastIndex + 1
if l >= len then break end
end
return ret, l
end
local slen = wlen(str)
--print(slen)
local leftCount = slen
local i = 0
while leftCount > 0 do
local j = 0
if leftCount >= len then
j = len
else
j = leftCount
end
local s, usedcount = getStr(j)
t[#t + 1] = s
leftCount = leftCount - usedcount
--print(s, usedcount, leftCount)
i = i + 1
end
return t
end