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开始,是从原始字符开始
相关推荐
在iOS开发中,当涉及到用户输入时,我们经常会用到`UITextView`和`UITextField`。然而,两者在处理键盘显示...例如,可能同时使用方法一和方法二,以确保用户可以通过点击导航栏的Done按钮或直接按下回车键来关闭键盘。
// 可以使用Paint类的measureText()方法 // 注意:需要考虑到字体大小、换行等因素 } } ``` 4. **设置ListView**: 最后,在Activity或Fragment中,我们需要设置ListView的Adapter为我们的自定义Adapter,并...
除了以上的方法,还可以考虑使用`GridView`控件,它本身就是以表格形式展示数据,每个单元格的宽度可以根据内容自动调整。如果要实现类似ListView的可滚动效果,可以在GridView的基础上自定义Adapter和布局。 在...
数据输入可能通过EditText控件获取用户输入,而数据输出则可以使用TextView显示计算结果。在处理数据时,需要确保输入的数据有效,避免错误的计算结果。数据的验证和处理过程是程序的关键部分。 【编程关键技术】 1...
开发者可能使用了Android的布局组件(如LinearLayout、RelativeLayout或ConstraintLayout)来构建训练页面,以及各种视图控件(TextView、ImageView、Button等)来显示训练指导和用户交互。 2. **活动管理**:...
本教案聚焦于Android UI基本界面控件的教学,旨在让学生通过实践操作,熟悉并掌握各种常见控件的属性与使用方法。下面,我们将详细介绍文本控件(TextView和EditText)以及按钮控件(Button和ImageButton)的关键...
在Android中,你可以使用`EditText`来模拟TextView的输入行为,但在这里,由于我们不希望用户直接编辑显示的内容,所以使用TextView更合适。计算结果可以通过重写TextView的`setText()`方法来实时更新。 对于计算...
5. 结果展示:计算结果需要实时更新到界面上,这可能涉及到TextView的setText()方法,将计算结果转化为易读的格式并显示出来。 6. 源码结构:在Android项目中,代码通常按照模块化组织,比如将UI逻辑、业务逻辑和...
颜色可以通过十六进制表示法(如`#RRGGBB`)或者使用Android预定义的颜色常量(如`@android:color/black`)来定义。 任务要求2是让应用程序在每次启动时显示不同的背景色。为了实现这一点,可以利用随机数生成器来...
EditText通常用于接收用户输入,但由于计算器通常不允许手动输入,这里可能只使用TextView显示计算过程和结果。TextView的文本需要通过代码动态更新。 6. **异常处理**: 为了防止除以零的错误,需要在执行除法...
本项目是一个简易的Android计算器应用,主要功能包括实现基本的数学运算操作:加法、减法、乘法和除法。该应用通过用户界面接收两个数值输入,并根据用户选择的操作进行计算,最后将结果展示在界面上。 #### 二、...
- 使用`length()`方法计算字符串长度。 - 设置`TextView`的文本为字符串长度。 - **关键代码片段**: ```java EditText et = (EditText) findViewById(R.id.editText); TextView tv = (TextView) findViewById...
接着,为了将这个BigDecimal对象转换成字符串显示在界面上,我们可以使用`toPlainString()`方法,它会避免使用科学计数法: ```java String displayStr = num.toPlainString(); ``` 然后,这个字符串可以被绑定到`...
使用`setText()`方法更新TextView的内容。 5. **错误处理**: - 处理除数为零的情况,避免程序崩溃。在进行除法运算前检查除数是否为0,并在必要时给出错误提示。 6. **样式和主题**: - 自定义计算器的样式和...
总的来说,使用GridLayout布局在Android中创建简易计算器界面是一种直观且灵活的方法。通过定义网格结构和视图的位置,我们可以快速地搭建出类似计算器的布局。不过,对于更复杂的界面,可能需要结合其他布局管理器...
1. **设置语言**:可以使用`Resources.updateConfiguration()`方法来动态更改当前线程的配置,包括语言。但是,这种方法需要重新创建Activity以使更改生效。示例代码如下: ```java Configuration config = ...
**布局更新**:在用户进行操作如清零或删除时,需要更新布局上的显示,这可以通过调用`TextView`的`setText()`方法来完成。 **应用生命周期**:作为Android开发者,理解活动的生命周期至关重要。当用户按下设备的...
在代码规范中,注释的使用是非常重要的,文件内容中提到了Javadoc注释的使用方法,这是一种生成API文档的官方标准方式。此外,从例子中我们可以看出,开发者在命名变量和方法时应该考虑到清晰性,例如使用变量名min...
可以使用`setText`方法更新TextView的内容。 7. **状态管理**:计算器可能需要处理连续的运算,比如用户先输入“2”,点击“*”,再输入“3”,点击“=”。在这种情况下,需要维护一个中间结果(中间变量),并在...
这个类可能包含加法、减法、乘法、除法等方法,以及清除和返回操作的实现。 - 双精度浮点数(Double):为了确保计算的精确性,可能会使用Double类型来存储中间结果和最终结果。 6. **EditText与TextView** - ...