String a = "\1阿第克搜房卡死的\2gsd\3阿萨德分呵可降低首付款及空间阿萨德akjsdkfklasdklfkl\2adsfkasdfklasdfklasdklfadsgfasdg\0呵可降低首付款及阿康鸡丝豆腐阿萨德发生的广泛撒的gas的广泛撒丁格\2adskjfkjaskdf呵可降低首付款及阿康速度\1aksdfklalsdklfklasdgklad是否快乐\0adsjfkjasdkjf阿奎奸杀副科级啊伤口揭开了圣诞快乐疯狂拉升";
a="阿奎讲空间阿萨德看来疯狂拉升到付款拉大手疯狂拉升德国ad搜房卡罗拉森林帝国法拉利岁的高龄拉萨ad搜房卡拉拉手断了的是卡夫卡独守空房卡死";
private Font font = Font.getDefaultFont();
private Vector contString = new Vector();
private void dealString(String string, Font font, int width) {
contString = new Vector();
int id = 0;
char temp=string.charAt(0);
if(temp!='\0'||temp!='\1'||temp!='\2'||temp!='\3'){
string="\0"+string;
}
StringBuffer sb = new StringBuffer();
while (id < string.length()) {
temp = string.charAt(id);
if (temp == '\0') {
if (sb.length() != 0) {
contString.addElement(sb.toString());
sb = new StringBuffer();
}
contString.addElement("" + 0);
} else if (temp == '\1') {
if (sb.length() != 0) {
contString.addElement(sb.toString());
sb = new StringBuffer();
}
contString.addElement("" + 1);
} else if (temp == '\2') {
if (sb.length() != 0) {
contString.addElement(sb.toString());
sb = new StringBuffer();
}
contString.addElement("" + 2);
} else if (temp == '\3') {
if (sb.length() != 0) {
contString.addElement(sb.toString());
sb = new StringBuffer();
}
contString.addElement("" + 3);
} else if (temp == '\n') {
if (sb.length() != 0) {
contString.addElement(sb.toString());
sb = new StringBuffer();
}
} else {
if (font.stringWidth(sb.toString()) < width) {
sb.append(temp);
if(id==string.length()-1){
contString.addElement(sb.toString());
}
} else {
contString.addElement(sb.toString());
sb = new StringBuffer();
sb.append(temp);
}
}
id++;
}
}
private void printString(Graphics g,int x,int y) {
g.setFont(font);
String temp="";
int count=0;
for(int i=0;i<contString.size();i++){
temp=contString.elementAt(i).toString();
if(temp=="0"){
g.setColor(0x0);
}else if(temp=="1"){
g.setColor(0xff0000);
}else if(temp=="2"){
g.setColor(0x00ff00);
}else if(temp=="3"){
g.setColor(0x0000ff);
}else{
g.drawString(temp, x, y+count*font.getHeight(), 0);
count++;
}
}
}
分享到:
相关推荐
本项目是一个年前的Android应用源码示例,专为学生毕业设计学习而准备,旨在教授如何让TextView根据文本长度自动换行,以适应不同屏幕尺寸和用户需求。 在Android中,TextView默认情况下会自动换行,当一行文本无法...
7. **可配置性**:程序可能提供用户配置选项,让用户可以根据个人喜好调整自动换行的触发条件,如行宽限制、字符间距等。 在"自动换行.txt"文件中,可能包含了程序的源代码、修改记录、使用说明或者测试案例,供...
在实际应用中,我们经常需要让`TextView`的内容根据屏幕宽度自动换行,以适应不同设备的显示需求。本篇将详细讲解如何实现`TextView`根据长度在屏幕中自动换行的功能,并探讨如何控制每行显示的字符数量。 首先,`...
自动换行控件必须能在不同分辨率和屏幕比例下正常工作,这需要灵活的布局策略和自适应的换行规则。 6. **编程实现**:在实践中,实现自动换行控件可能涉及使用如JavaFX、Qt、WinAPI、WPF、Flutter、React Native等...
这个"Android高级应用源码-textView根据长度自动换行.zip"压缩包很可能是包含了一个示例项目,演示了如何让TextView在文本超出其宽度时自动换行,以适应不同屏幕尺寸和布局需求。 首先,我们来了解TextView的基本...
对于处理长英文字符串,自动换行功能显得尤为重要,因为它可以确保文本在有限的空间内适当地布局,提供良好的可读性。然而,有些控件并不具备这一特性,如Qt库中的QLabel,它默认情况下并不支持长串英文的自动换行。...
总之,通过自定义的`textPrewrap()`函数,我们可以实现Canvas上的文本自动换行,适应不同长度的文本,并能根据需求限制显示的行数。这在创建动态的、可自适应的Canvas内容时非常有用。希望这个例子对你有所帮助,并...
这个压缩包"安卓Android源码——textView根据长度自动换行.zip"很可能包含了一个示例项目或代码片段,演示了如何在TextView中实现根据文本长度自动换行的功能。 在Android的TextView中,自动换行是默认开启的。当你...
在某些场景下,我们希望文本能根据其内容自动换行,以适应不同的屏幕尺寸和布局需求。`UILabel` 的自动换行功能正是解决这一问题的关键。本教程将详细介绍如何实现 `UILabel` 的自动换行,并通过示例代码来展示具体...
"自动换行编辑框控件实现"这个主题,意味着我们要讨论如何创建一个能够根据文本内容自动调整行宽的编辑框,确保文本不会溢出边界,而是适当地换行到下一行。 编辑框控件的基本功能包括文本输入、光标移动、文本选择...
标题“字体超过div范围自动换行”及描述“字体超过div范围自动换行”,明确指出了一种解决方案——利用CSS属性使文本在超出`div`容器范围时自动换行。下面将深入探讨这一主题,包括相关CSS属性的使用方法、应用场景...
当用户输入的内容超出单行显示的范围时,自动换行功能就显得尤为重要。本教程将详细探讨如何在`UITextField`中实现自动换行,以便更好地适应不同场景的需求。 首先,我们需要了解`UITextField`的基本属性和方法。`...
为了确保TextView能正确地根据文本长度自动换行,还需要关注字体大小和样式。`android:textSize`可以设定字体大小,单位通常是sp(可缩放像素),这有助于保持文本在不同屏幕密度下的可读性。另外,通过`android:...
2. **计算字符宽度**:每个字符在屏幕上占据的宽度可能不同,取决于字体和字号。易语言可能没有直接提供计算字符宽度的函数,所以我们可能需要使用一些间接方法,比如先测量一个已知宽度的字符串,然后根据字符数量...
在设计用户界面时,有时我们需要创建一个可以显示多个标签并且能自动换行的布局,以适应不同屏幕尺寸和保持界面的可读性。`多标签自动换行的控件ViewGroup`就是解决这个问题的一个自定义组件。 首先,我们要理解`...
### Android在SurfaceView游戏中实现字体自动换行的关键技术解析 #### 概述 在Android开发过程中,特别是针对游戏开发中的SurfaceView组件应用时,文本显示的美观与合理性尤为重要。一个常见的需求是根据屏幕的...
这使得我们可以根据需要灵活地排列标签,使其在空间不足时自动换行。 要实现自动换行标签控件,我们首先需要在XML布局文件中创建一个`RelativeLayout`作为容器。接着,我们需要为每个标签创建一个`TextView`,并将...
6. 自动换行:为了实现自动换行,你需要遍历文本,分割成多行并调整每行的起始位置,确保不会超出图片边界。你可以使用`StringSplitOptions.RemoveEmptyEntries`来分割文本,并检查每行的长度是否超过当前列宽。 7. ...
在iOS开发中,`textView` 是一个常用的UI...总的来说,`textView`的自动换行功能是其核心特性之一,开发者可以根据需求调整其显示效果和交互方式。理解并熟练运用这些知识点,将有助于打造更符合用户体验的iOS应用。