`

当String过长时需要根据可显示的宽度来截取String

阅读更多
当你开发的时候,也许你会遇到这样的一个问题:只有给你100px的宽度显示文件名字时,就必须考虑但文件名的长度超过100px时如何处理,也许会自己去计算100px可以显示多少个字母,但在android里显示的字符是不等宽的(也就说L要比l占更多的像素),并且当显示的不是语言不是English,而是汉语的字时,显然用这种方法是不可以满足的,我的朋友找到了一种简单的方法可以处理这样的问题:

原始方法:
String displayname = “abcedhkkjjll汉化”;
if (displayname.length() > 15) { String temp =
			 displayname.substring(0, 15) + "..."; canvas.drawText(temp, 0,
			  temp.length(), xPos, yPos + h + 10, tPaint); } else {
			  canvas.drawText(displayname, xPos, yPos + h + 10, tPaint); }
			 


改善方法:
String displayname = “呵呵呵呵呵呵呵呵呵呵”;
			int count = tPaint.breakText(displayname, true, 100f, null);

			System.out.println(" ImageGallery breakText count=" + count);
			if (count < displayname.length()) {
				String temp = displayname.substring(0, count) + "...";
				canvas.drawText(temp, xPos, yPos + h + 10, tPaint);
			} else {
				canvas.drawText(image.getDisplayName(), xPos, yPos + h + 12,
						tPaint);
			}
分享到:
评论
2 楼 hhww0101 2010-06-30  
如果我要是在Widget中,没办法获取Paint对象怎么办?
1 楼 hhww0101 2010-06-30  
这样你还得根据Paint对象来判断

相关推荐

    [DataGird]如何截取过长的字符串

    在处理数据展示时,我们经常需要对数据进行格式化,特别是当数据中的某些字段长度过长时,需要进行适当的截取和展示。 #### 二、处理过长的字符串方法 为了处理`DataGrid`中过长的字符串,我们可以采用以下步骤: ...

    前后台实现精确截取指定长度字符串(考虑全角半角)

    这个问题在处理多语言环境下的文本时尤为重要,因为不同语言中的字符宽度可能有所不同,这直接影响到文本的显示效果。 ### 一、问题背景 在实际开发过程中,我们经常需要对用户输入或者数据库查询结果中的字符串...

    自定义TextView解决超长文字显示

    然而,当文本内容过长时,默认的TextView可能无法妥善处理,导致显示不全或者用户体验不佳。为了解决这个问题,开发者通常需要进行自定义扩展,以实现更灵活的文本显示功能。本篇文章将深入探讨如何自定义TextView来...

    截取字符串 省略用...表现 grivdview截取数据用..表现出来

    表现出来"这个标题和描述暗示了如何在数据显示时对过长的文本进行截取,并在末尾添加省略号(...)以表示被截断的部分。这种需求通常出现在数据表格、列表视图或者控件如GridView中,当显示的数据过多,不能完全显示...

    截取字符办法(区分中英文)

    这种方法适用于需要根据字符实际显示宽度而非字节数来截取字符串的情况,特别是在处理中英文混合文本时尤为有用。然而,此方法也存在一些局限性和优化空间: - **性能考量**:虽然使用了`RegexOptions.Compiled`来...

    php通用截取字符串.zip

    类似于 `substr()`,`mb_strimwidth()` 在多字节字符集下工作,但还可以根据指定的宽度和终止字符串来截取并修剪字符串。 在实际应用中,我们可能还需要考虑字符串的编码、字符集以及截取规则(如是否包含结束标记...

    Java截取视频画面

    在实际应用中,你可能需要根据具体需求对这个过程进行扩展,比如循环截取多个时间点的画面,或者批量处理多个视频文件。此外,如果你的项目需要跨平台兼容,那么可能需要编写平台感知的代码来确保FFmpeg的正确执行。...

    网页中字段太长,省略号表示。css显示

    在网页设计中,有时我们需要处理过长的文本字段,使其在有限的空间内显示部分内容并以省略号(...)结尾,以保持页面整洁且易于阅读。这种效果可以通过CSS(层叠样式表)来轻松实现。本文将深入探讨如何使用CSS实现...

    VB 调用QQ DLL截屏 可编辑图片 生成base64String

    这是因为在VB中调用外部库时,通常需要指定库的完整路径,或者确保库与可执行文件在同一目录下,以简化引用。 调用DLL函数的关键在于导入函数声明。在VB中,使用`Declare`语句来引入DLL中的函数。例如,对于截屏...

    Android应用源码截屏和截取网页整页内容

    在Android平台上,开发人员经常需要实现屏幕截图以及捕获网页的完整内容,这些功能在调试、测试、分享和用户交互等方面都有广泛的应用。本篇将深入探讨如何在Android应用源码中实现这两种功能。 首先,我们来讨论...

    Android 带小数点的字符串格式化为固定位数

    在Android开发中,数据的格式化是一个非常重要的环节,特别是在显示数字时,为了保持数据的一致性和可读性,我们经常需要将带有小数点的字符串格式化为固定位数。这个工具类就是为了满足这样的需求而设计的。下面将...

    struts-api.rar_struts api_字符 截取

    - 国际化和本地化:如果需要截取的字符串涉及用户界面,可能需要考虑不同的语言环境,如字符宽度和顺序。 - 性能优化:大量字符串操作可能影响性能,合理使用StringBuilder和StringBuffer,避免不必要的复制操作。 ...

    C# 截取屏幕核心代码

    使用C#进行编程时,可以利用.NET Framework提供的类库来轻松实现截屏功能。本文将详细介绍如何使用C#语言编写代码来截取屏幕,并对给定的核心代码进行深入分析。 #### 二、关键概念与原理 ##### 2.1 屏幕对象与...

    ASP.NET两个截取字符串的方法分享

    例如,在***中,可能在创建一些文本控件(如Label或Literal控件)来显示文本时,需要根据控件的大小来决定文本的显示方式。此时,可以使用这些方法来控制文本的显示,避免出现布局混乱或者滚动条频繁出现的情况。 ...

    String 第二版

    - 编码转换:在处理不同编码的文本时,需要进行编码转换,如UTF-8、GBK等。 - 处理非ASCII字符:对于非ASCII字符,编程语言提供了专门的方法进行处理,如Go中的`rune`类型。 6. **正则表达式** - 正则表达式简介...

    ASP.NET 字符串截取

    这样可以确保在展示有限宽度的界面时,不会因为字符串过长而影响布局。 在实际应用中,这两个方法可以灵活地应用于各种场景。例如,对于博客文章的预览,我们可以使用`CutStr(str, 50)`来生成不超过50字符一行的...

    精彩编程与编程技巧-如何压缩较长的全路径文件名中的路径 (Path) 字串长度?...

    当遇到过长的文件路径时,例如: ``` C:\MyFolder\VisualBasic\MyReallyWayTooLongFolderName\ButWhoCares\IhaveTheAPI.doc ``` 这种情况下,如果不进行适当的处理,可能会导致以下问题: - 文件路径超过了某些操作...

    GridView控件使用省略号替换超长字符

    在处理大量数据时,可能会遇到某个字段的值过长,导致列宽不足以完全显示的情况。为了解决这个问题,我们可以设置GridView控件使其在文本超长时自动用省略号(...)来替换超出部分,从而保持表格的整洁和易读性。 ...

    springboot 获取视频第一帧和时长

    在获取时长的过程中,同时也可以解析出宽度和高度信息,计算宽高比: ```java int width = ...; // 从Duration:后面的字符串解析 int height = ...; // 同样方法解析 double aspectRatio = (double) width / ...

Global site tag (gtag.js) - Google Analytics