Menu控件------------------请大家帮忙

kyouken2007 2007-09-21 11:50:15
当菜单的文本过长的时候我想让他换行,想要如下结果,
item1
1.aaaaaaaa
aaaaa
2.bbbbbbbb
bbbbb
3.cccccccc
ccccc
item2
1.dddddddd
2.eeeeeeee
eeeee
item3
....

但是我做出来的却是下面这种结果,请大家帮忙,该如何实现上面的那种效果阿?

item1
1.aaaaaaaa
aaaaa
2.bbbbbbbb
bbbbb
3.cccccccc
ccccc
item2
1.dddddddd
2.eeeeeeee
eeeee
item3
....
...全文
147 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyouken2007 2007-09-21
  • 打赏
  • 举报
回复
菜单的文本从数据库取得,长度不确定,所以加宽和加空格是不太可行地。

大家还有啥办法吗?
morixing 2007-09-21
  • 打赏
  • 举报
回复
应该没正常办法的,要么加宽菜单要么把长的在中间加入空格。
kyouken2007 2007-09-21
  • 打赏
  • 举报
回复
>chuxue1342(@楚}===天{==========雪饮>)

menu应该是设置在最顶层!宽度应该没关系吧!!
再有!如果你一定要设置换行,试一下指定宽度之后,设置样式wrap="true"
-----------------------------------------------------------

1.我是放在左边的。
2.现在的效果就是wrap="true"之后的效果
kyouken2007 2007-09-21
  • 打赏
  • 举报
回复
>whoo529()
.value.replace("","");
截取多少个字母,在其后加"\r\n"
---------------------------------------
如果是英文单词,从中间给截了?
中文的情况也同样,
我是觉得实现这个功能如果需要一堆编码或者逻辑判断,有点不太合适了。
这控件就没属性可以设置吗?
chuxue1342 2007-09-21
  • 打赏
  • 举报
回复
menu应该是设置在最顶层!宽度应该没关系吧!!
再有!如果你一定要设置换行,试一下指定宽度之后,设置样式wrap="true"
kyouken2007 2007-09-21
  • 打赏
  • 举报
回复
>jiangmin168168

没看明白你的意思。。。

另外我更正以下,要得到下边的效果就可以了,前边那个索引id无所谓

item1
1.aaaaaaaa
aaaaa
2.bbbbbbbb
bbbbb
3.cccccccc
ccccc
item2
1.dddddddd
2.eeeeeeee
eeeee
item3
....
whoo529 2007-09-21
  • 打赏
  • 举报
回复
try
.value.replace("","");
截取多少个字母,在其后加"\r\n"
lass_name 2007-09-21
  • 打赏
  • 举报
回复
好像没有什么办法啊!
就那样显示不是很好吗?
jiangmin168168 2007-09-21
  • 打赏
  • 举报
回复
其实你没有必要那么做,用户看不到完全的文本,更加麻烦.
jiangmin168168 2007-09-21
  • 打赏
  • 举报
回复
好像没有其它好的方法,帮顶
EVCL即见即所得的嵌入式菜单设计 EVCL开发教程 深圳市洲泰科技有限公司是一家专注于嵌入式系统产品研发的高科技企业 以下对我司的即见即所得的嵌入式菜单系统(EVCL)作简单介绍. 一,EVCL介绍 俗话说“工欲善其事,必先利其器”,对于嵌入式程序员来说,开发维护UI系统, 是一件繁琐,工作量极大的事情。深圳市洲泰科技在嵌入UI开发中,总结了大量的 经验,现在倾情奉献我们设计的先进UI工具. 大名鼎鼎的C++builder VCL,大家有听说过吧, 拿着mouse拖拉几下,就可以实现一个标准的Window 界面的程序,我们经过大量的工作, 现在也研发了像c++builder VCL 一样好用的EVCL,事实上,EVCL开发环境也是基于 C++BUILDER2010的,我们只要在C++builder IDE 拖拉几下控件,最点下UI产生按钮, 马上就可以生成基于window风格的嵌入式UI,修改菜单排列,组合构成,中间甚致无需修改一行代码. 二,开发介绍 1. 使用C++builder2010 打开Osd tool CB2010\Project1.cbproj 2. 新建建窗口 大小对应你项目中LCD屏的分辨率. 3. 在窗口中添加控件,EDIT,LABEL,BUTTON,等, 在C++BUILDER2010 IDE中设置 这些控件的属性,颜色,文字,大小等. 4. 使用C++BUILDER2010 编译程序,按下主窗口左上角的三角图标,马上把你刚新添 加的窗口编译成c代码. 5. 把EXE 所在文件侠下的 *.h *.c 文件copy到菜单目录tosdemo\menu\下,编译,下 载,即可看到你在C++builder IDE 开发的窗口界面. 6. 各个控件会自动生成关联,并都有自己的消息传输机制,都实现了PC Tab 键移动焦点 的功能. 7.菜单是以窗口为单位的,要把窗口激活,参考MenuInit函数 FormAdd(SUPER_PTR(FormTest_new(), FormBase),MENU_TEST_PAGE); //添加窗口 三.移植 1.一说到移植,就满头大汗,当初我刚想设计UI时,就看了ucGUI的移植,看了很久, 都入不了门,所以才决心自己写ui系统. 2.EVCL 移植很简单, tosdemo\lcd\lcd.c 修改四个函数 LcdInit()-----LCD 初始化 LcdDisplayEn() ----LCD 显示使能 LcdDisplayDisen----LCD 显示禁能 LcdDrawPixel(_s16 x,_s16 y,TColor Color); -------最关键,画点函数,所有图形都基于 这个函数实现 四.已实现组件说明 1. TLabel --文字标签 在c++builder中设置属性. 1.1 Caption 显示的文字 1.2 Font->Color 1.3 位置大小,直接使用mouse调整 1.4 Hint 填写TLabel 选中,或被按OK键时执行的用户函数. 1.5 ShowHint 属性使用时,本控件在显示能够被选中,有焦点功能 1.6 Helpkeyword 实现包含头文件,比如你的菜单代码要包含 lcd.h 这个文件 直接填 #include”lcd.h” 多个文件,使用空格分开即可 2.TEdit 单行文本框 与1属性相仿 3.TButton 按钮与1属性相仿 4.TChoeckBox 确认框 5.TList 列表框 6.TProgerssbar 进度条 7. _BoolType FormShowMsg(FormBase *FatherForm,char *Msg); 对框 以上7个控件都正常使用,已经满足大部分的人机界面。 新控件不断更新, 我是工科出身,很怕写字,需要帮忙,直接联系我就好。 联系人:梁祚扬 名称:深圳市洲泰科技有限公司 地址:深圳市宝安西乡107国道339号(西成工业区公交站)吉美禾大厦1018 网址:www.zoti.cc 邮件:alex_liang@zot
APK软件汉化教程 (转载注明来自藕粉网www.Allphone.com.cn的Smwenzi,谢谢) 随着Android手机种类的不断丰富,各种应用软件也开始遍地开花,Android用起来也越来越爽了……不过有很多软件都是老外编的,虽然英文界面也能用,但是毕竟不如咱们中文看着舒服,特别是一些功能相对比较复杂的软件,中文界面还是很有必要的。因此,本人综合网上多位前辈大侠的教程,加上自己的一点心得,对如何汉化APK软件,进行简要说明。由于我也是个新手,很多地方也许会不完善甚至存在错误,各位兄弟不吝赐教。 一、概述 目前,网上常用的APK汉化方法有三种: 一是使用Hex Worksho,这种方法操作繁琐、费时费力,而且经常出现搜不到想要修改的字符的情况; 二是使用汉化浪子大侠的Android ResEdit(目前最新版本AndroidResEdit v1.5),这个软件使用简单直观,但是对不在资源文件中的词条无能为力,只能用于简单的汉化; 第三种就是我在这里要向大家推荐的APKTOOL,他的原理是把APK进行反编译,生成程序的源代码和图片、XML配置、语言资源等文件。我们秩序对有关图片和语言资源等文件进行修改,再编译打包成APK并签名,就可以得到汉化版的APK软件了。 二、搭建汉化环境 由于APKTOOL工具是用Java编制的,因此需要电脑中安装了JRE或者JDK(JAVA工具,用JRE即可)。 下载地址:………… 接下来就是我们要用到的关键工具——APKTOOL。这个是我在其他论坛找到的leasea大侠集成的一个批处理,可以省去自己输入指令的麻烦,实现解包、打包、签名自动处理,我自己也作了一点小小的修改,在此谢谢leasea大侠。 下载地址:………… 还有一个辅助工具Notepad++,这是一个功能强大的文本编辑软件,可以在指定文件夹中搜索字符串,对于在不在资源文件中的词条汉化,用这个可以极大减少工作量。 下载地址:………… 安装的步骤很简单了,下载上面三个文件,安装JRE和Notepad++,将APKTool压缩包解压到任意位置,就OK了。 另外,为了调试方便,推荐安装Android相应版本的SDK(或OMS),并建立虚拟机运行环境。当然用手机调试也可以,但是没那么方便而且容易发生不可预料的问题。关于虚拟机环境搭建参考其他资料。 三、解包软件 将你需要汉化的APK文件,放到APKTOOL文件夹下面,双击运行“解包软件.BAT”,批处理会自动识别APK文件并开始解包,在这里我用FlipSilent(一个翻转静音工具)作为示例。 解包出来的资源存储在“汉化中的资源”文件夹中,原始的APK文件则被备份到“原始软件备份”文件夹中。 打开解包的资源文件,里面有两个文件夹:Res存储的各种资源文件;Smail:存储的是反编译的程序代码。至此解包操作完成。 四、初步汉化 汉化的第一步,是汉化res文件夹里面的程序界面资源。一般来说,这个文件夹里面会包含以下文件夹: Drawable:程序调用的图标以及各种图片; layout-land:竖版界面xml描述文件; layout-port:横版界面xml描述文件; menu:菜单布局xml描述文件; values:字符串资源定义,我们要汉化的绝大部分工作就在这里面; xml:其他不再详细分类的布局xml描述文件。 根据软件的不同,文件夹可能会多些也可能会少些,具体内容大家打开一看就大概能知道是什么了。这里FlipSilent软件相对比较简单,所以只有三个文件夹,如下图: 在values文件夹下的文件: 一般来说,汉化需要处理是arrays.xml和strings.xml这两个文件。如何判断哪些是需要我们翻译的词条呢?有三种方法,综合起来一般就差不离了: 第一个当然是在使用软件中界面出现的词条,这个可以用手机仔细查看,当然有一部分可能很少出现的提示会有遗漏; 第二个凡是一对tag里面的,一般情况下就是需要翻译的英文字符串。格式一般为:******* ,或**** 第三个是以大写字母开头的词条,一般都是需要汉化的。 注意:这三条要综合起来运用,特别是在比较大型的软件中,情况会比较复杂,需要自己不断摸索。 在解包FlipSilent软件中,没有arrays.xml文件,因此我们的对象就是strings.xml了。用记事本打开strings.xml文件,内容如下: 对比一下FlipSilent软件运行界面,一切都就都明白了…… 接下来的工作,就是考验各位的英语水准了…… 上面就是我翻译的结果了,水平不行,大家见笑…… 修改完毕了,保存退出。 五、打包签名 改完了strings.xml,下面就是打包看看效果了……有了leasea大侠的批处理,就很简单了,什么都不用管,双击运行“打包签名.BAT”就可以了。 如果出现的是上面的信息,那么恭喜你,过关了…… 如果有多余的信息,并提示你找不到“已汉化签名的软件”文件夹,那么说明你修改不该修改的词条,好好找找吧,这个就没办法一概而论了。 在弹出的资源管理器窗口里面,你就可以看到汉化后的软件了。现在试验一下吧。 注意:试验之前,要删除安装的原版软件,否则会安装失败的。 基本就搞定了……等等,怎么那个About按钮还是英文啊,对于追求完美的人,这是绝对不用需的。 可是在语言资源文件里面,就是找不到这个词啊。接着就是下一节了…… 六、深度汉化 先解释一下为什么还有一些词条没有汉化的原因。 一般而言,一个编写规范的Android程序,会把所有字符串资源都分离出来,放在values的strings.xml文件中,values目录中存放的是默认语言字符串资源(一般为英文)。APK程序在处理字符串资源时会先判断语言环境,然后自己调用对应语言的。可是,有的程序员会自觉不自觉地,将部分文字内容写到程序代码里面,因此就出现了在资源文件中找不到的词条了。 对这部分词条的修改,相对就比较复杂一些了,幸好我们有神兵利器:Notepad++。 打开Notepad++软件,选择菜单中的“搜索”—“在文件中查找”,查找目标中输入要查找的字符串,这里为“About”,在目录中,选择解包后的“汉化中的资源”文件夹中的“smali”文件夹,一定要勾选“包含子目录”选项。 选定后,点击“全部查找”按钮,NotePad++会将这个文件夹中所有包含“About”字符的地方给你列出来。 这里一共找到了6个,很明显前面的几个开头字符都是小写,不符合我们的要求,那么必然就是最后一个了,双击最后一行直接定位,修改为“关于软件”,然后保存…… 注意: 1.进行这部分修改的时候,不要在修改内容里面包含空格,否则极有可能在重新编译打包的时候出错; 2.在示例中需要修改的词条很简单,也很好找,但是实际操作中,可能会比这个复杂很多,尤其是可能搜索出很多一样的结果,究竟哪些能改,在这里的只有一个大致的判断方法,那就是只能修改const-string v* “***”  引号中的字符。 3.在同时出现多个重复的关键字时,谨慎修改,有些可能是定义函数的, 具体参考http://code.google.com/p/smali/source/browse/#svn/dalvik-docs/opcodes 4.保存时的文本编码要设置为ANSI格式,具体操作在菜单栏的“格式”中。打包前确定classes 文件夹下没有其他无用文件,如notepad++的备份文件(为避免这种情况,确认在菜单栏“设置”—“首选项”—“备份与自动完成”中,禁用自动备份功能)。 现在再打包签名,安装试验看看效果。 已经改过了吧,现在就可以收工了…… 七、修改图标 软件的内容汉化完成了,应该说就搞定了,不过,软件的图标往往会与手机的主题风格不一致,不够美观,甚至有的软件作者主要精力都在编程序上面,用的就是标准的小绿人,看不出来软件的功能。因此,对图标的美化也是有必要的。接下来我们对图标开刀。 还是在解包后的汉化资源中,这次我们的目标是res\Drawable下面的图片。原始图片是这样的: 我们要修改的是icon.png,注意左边“详细信息”里面的内容,显示该图像尺寸是48 x 48像素。剩下的就是用自己喜欢的图像替换它就可以了。我这里用的图像是藕粉网风格的,顺手把那个通知图标也换了,这个是24 x 24像素的,呵呵: 换完的效果就不单独上图了。 注意:编辑png图像,推荐使用Photoshop软件,兼容性好。这里我给大家附上一个藕粉风格图标的模板,希望大家能帮忙推广藕粉网。 图标模板下载地址:………… 八、其他 (一)一些软件中界面没有使用文字,而是调用的图片(这在游戏软件中更多见),对于此类界面的汉化,参考替换图标,直接用同尺寸的图片替换就可以了。 (二)有的软件本身支持多语种,这样可能会在res文件夹下会出现多个以values开头的文件夹,对于这类软件,汉化也有两种做法: 一种是按照上面的方法,直接把默认语言文件夹values里面的资源都汉化掉,干脆利落,不过这样到了英文系统里面也显示汉字。 第二种方法,就在res目录里面建立对应的语言资源文件夹(简体中文资源的目录名是values-zh-rCN,繁体中文是values-zh-rTW),将英文资源values里面的arrays.xml和strings.xml复制到新目录里面进行汉化,让Android系统自己识别语种调用,从而达到在对应的语言环境中显示对应的界面。不过,如果软件的作者将一些词条放到了代码里面的话,这样汉化也就没什么必要了,因为代码中的词条是不会自己更换的,呵呵。 能把加密的XML文档转化为可见可编辑的形式。 打开google code发现Apktool更新了,居然支持win了。。。。 那本文就是一篇介绍在windows环境下使用Apktool的笔记。 安装 1.先装JAVA环境,JDK/JRE都行,官网下载 装过的就跳过吧 2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_r01-1.zip 3.解压apktool.jar到 C:\Windows 解压apktool-install-windows.zip到任意文件夹(例如E盘根目录) 4.Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。会列出一些帮助的话就成功了。Apktool 命令 apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC apktool b ABC 从文件夹ABC重建APK,输出到ABC\dist\out.apk 然后我们反编译一枚软件玩玩… AutoMemoryManager的免费版底部有一条广告,去掉它吧。 把com.lim.android.automemman.apk放到同文件夹(我的就是E盘根目录) Win+R 运行CMD E:<回车> E:\>apktool d com.lim.android.automemman.apk AMM <回车> I: Baksmaling… I: Decoding resource table… I: Decoding resources… I: Copying assets and libs… 现在文件被decode到E:\AMM了,打开E:\AMM\res\layout\main.xml看,所有都可见了吧~ 编辑第59行 改为 然后CMD输入 E:\>apktool b AMM I: Checking whether sources has changed… I: Smaling… I: Checking whether resources has changed… I: Building resources… I: Building apk file… 用Auto-sign签名E:\AMM\dist\out.apk 安装 这样广告就不见了 再看,嘿嘿~很帅吧… 这其实就是改了AndroidManifest.xml里的ADmob广告ID罢了 Settings.Secure.setLocationProviderEnabled(getContentResolver(),LocationManager.NETWORK_PROVIDER, mNetwork.isChecked()); 根据mNetwork这个控件是否选中决定是否打开基站定位,mNetwork就是界面那个选择框

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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