`

TextView用法总法

 
阅读更多

Android UI —— TextView 篇

一、TextView不同区域设置颜色,大小、点击事件

String msg = getResources().getString(R.string.school_roll_auth);
		SpannableStringBuilder style = new SpannableStringBuilder(msg);
		// 设置字体颜色
		style.setSpan(
				new ForegroundColorSpan(getResources().getColor(
						R.color.tv_color_99)), 0, msg.length() - 5,
				Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
		style.setSpan(
				new ForegroundColorSpan(getResources().getColor(
						R.color.text_blue)), msg.length() - 5, msg.length(),
				Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
		// 设置字体背景色
		style.setSpan(
				new BackgroundColorSpan(getResources().getColor(
						R.color.bg_common)), msg.length() - 5, msg.length(),
				Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
		// 设置可点击部分
		style.setSpan(new ClickableSpan() {

			@Override
			public void onClick(View widget) {
				//do Click ....
			}

			@Override
			public void updateDrawState(TextPaint ds) {
				super.updateDrawState(ds);
				ds.setUnderlineText(false);
				ds.clearShadowLayer();
			}

		}, msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
		tv_school_roll_msg.setText(style);
		// 此方法在需要响应用户事件时使用,如点击一个电话号码就跳转到拨号页面。如果不执行这个方法是不会响应事件的,即便文本看着已经是下划线蓝色字了。
		tv_school_roll_msg.setMovementMethod(LinkMovementMethod.getInstance());

 

//设置字体不同大小
SpannableStringBuilder sb = new SpannableStringBuilder(numText);

			sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources()
					.getDimensionPixelSize(R.dimen.text_size_24)), 0,
					income.indexOf(".") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
			sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources()
					.getDimensionPixelSize(R.dimen.text_size_16)),
					income.indexOf(".") + 1, income.length(),
					Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
			view.setText(sb);

 注:Spannable.SPAN_EXCLUSIVE_EXCLUSIVE参数是对区域的说明,左包含,右不包含

 

 SpannableStringBuilder的append方法

SpannableStringBuilder sb = new SpannableStringBuilder(num);
SpannableStringBuilder sbUnitName = sb.append("元");
sbUnitName.setSpan(new AbsoluteSizeSpan(getResources().getDimensionPixelSize(floatSizeResourcesId)), num.length() - 1, num.length() + unitName.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

 append之后数符索引不是从0开始,是从原始字符开始

 

分享到:
评论

相关推荐

    UiOS开发中ITextView回收或关闭键盘使用方法总结

    在iOS开发中,当涉及到用户输入时,我们经常会用到`UITextView`和`UITextField`。然而,两者在处理键盘显示...例如,可能同时使用方法一和方法二,以确保用户可以通过点击导航栏的Done按钮或直接按下回车键来关闭键盘。

    ListView 表格动态设置控件宽度 XML法

    // 可以使用Paint类的measureText()方法 // 注意:需要考虑到字体大小、换行等因素 } } ``` 4. **设置ListView**: 最后,在Activity或Fragment中,我们需要设置ListView的Adapter为我们的自定义Adapter,并...

    ListView 表格动态设置控件宽度 代码法

    除了以上的方法,还可以考虑使用`GridView`控件,它本身就是以表格形式展示数据,每个单元格的宽度可以根据内容自动调整。如果要实现类似ListView的可滚动效果,可以在GridView的基础上自定义Adapter和布局。 在...

    矩阵位移法在Android系统的实现.pdf

    数据输入可能通过EditText控件获取用户输入,而数据输出则可以使用TextView显示计算结果。在处理数据时,需要确保输入的数据有效,避免错误的计算结果。数据的验证和处理过程是程序的关键部分。 【编程关键技术】 1...

    Android项目源码松崎视力增进法十五点纸训练软件

    开发者可能使用了Android的布局组件(如LinearLayout、RelativeLayout或ConstraintLayout)来构建训练页面,以及各种视图控件(TextView、ImageView、Button等)来显示训练指导和用户交互。 2. **活动管理**:...

    移动平台应用与开发教案

    本教案聚焦于Android UI基本界面控件的教学,旨在让学生通过实践操作,熟悉并掌握各种常见控件的属性与使用方法。下面,我们将详细介绍文本控件(TextView和EditText)以及按钮控件(Button和ImageButton)的关键...

    Android按钮组设计实现计算器功能.rar

    在Android中,你可以使用`EditText`来模拟TextView的输入行为,但在这里,由于我们不希望用户直接编辑显示的内容,所以使用TextView更合适。计算结果可以通过重写TextView的`setText()`方法来实时更新。 对于计算...

    Android——本息计算器

    5. 结果展示:计算结果需要实时更新到界面上,这可能涉及到TextView的setText()方法,将计算结果转化为易读的格式并显示出来。 6. 源码结构:在Android项目中,代码通常按照模块化组织,比如将UI逻辑、业务逻辑和...

    Android中使用颜色资源完成教学案例的要求说明.pdf

    颜色可以通过十六进制表示法(如`#RRGGBB`)或者使用Android预定义的颜色常量(如`@android:color/black`)来定义。 任务要求2是让应用程序在每次启动时显示不同的背景色。为了实现这一点,可以利用随机数生成器来...

    Android开发_简单计算器代码

    EditText通常用于接收用户输入,但由于计算器通常不允许手动输入,这里可能只使用TextView显示计算过程和结果。TextView的文本需要通过代码动态更新。 6. **异常处理**: 为了防止除以零的错误,需要在执行除法...

    计算器源代码

    本项目是一个简易的Android计算器应用,主要功能包括实现基本的数学运算操作:加法、减法、乘法和除法。该应用通过用户界面接收两个数值输入,并根据用户选择的操作进行计算,最后将结果展示在界面上。 #### 二、...

    Android期末考试题库

    - 使用`length()`方法计算字符串长度。 - 设置`TextView`的文本为字符串长度。 - **关键代码片段**: ```java EditText et = (EditText) findViewById(R.id.editText); TextView tv = (TextView) findViewById...

    android精度显示

    接着,为了将这个BigDecimal对象转换成字符串显示在界面上,我们可以使用`toPlainString()`方法,它会避免使用科学计数法: ```java String displayStr = num.toPlainString(); ``` 然后,这个字符串可以被绑定到`...

    android+studio简单的计算器应用

    使用`setText()`方法更新TextView的内容。 5. **错误处理**: - 处理除数为零的情况,避免程序崩溃。在进行除法运算前检查除数是否为0,并在必要时给出错误提示。 6. **样式和主题**: - 自定义计算器的样式和...

    Android使用GridLayout布局完成简易计算器界面的代码清单.pdf

    总的来说,使用GridLayout布局在Android中创建简易计算器界面是一种直观且灵活的方法。通过定义网格结构和视图的位置,我们可以快速地搭建出类似计算器的布局。不过,对于更复杂的界面,可能需要结合其他布局管理器...

    安卓字体使用多语言相关-android实现应用内语言切换.rar

    1. **设置语言**:可以使用`Resources.updateConfiguration()`方法来动态更改当前线程的配置,包括语言。但是,这种方法需要重新创建Activity以使更改生效。示例代码如下: ```java Configuration config = ...

    Android简单计算器

    **布局更新**:在用户进行操作如清零或删除时,需要更新布局上的显示,这可以通过调用`TextView`的`setText()`方法来完成。 **应用生命周期**:作为Android开发者,理解活动的生命周期至关重要。当用户按下设备的...

    Android开发代码规范.pdf

    在代码规范中,注释的使用是非常重要的,文件内容中提到了Javadoc注释的使用方法,这是一种生成API文档的官方标准方式。此外,从例子中我们可以看出,开发者在命名变量和方法时应该考虑到清晰性,例如使用变量名min...

    Android案例:简易四则计算器,加减乘除用四个按钮控制。利用Activity点击事件监听

    可以使用`setText`方法更新TextView的内容。 7. **状态管理**:计算器可能需要处理连续的运算,比如用户先输入“2”,点击“*”,再输入“3”,点击“=”。在这种情况下,需要维护一个中间结果(中间变量),并在...

    Android版简易计算器

    这个类可能包含加法、减法、乘法、除法等方法,以及清除和返回操作的实现。 - 双精度浮点数(Double):为了确保计算的精确性,可能会使用Double类型来存储中间结果和最终结果。 6. **EditText与TextView** - ...

Global site tag (gtag.js) - Google Analytics