如图,这个是桌面Widget中的截图,最好是通过一个TextView实现,这是我提出的问题,近几天解决。呵呵,当然写两个TextView很简单也很容易设置。
title.setText("Your big island <b>ADVENTURE!</b>");//这是原样显示,我想让加粗
还有,我想能不能类似的给上边那样通过html标签设置样式。网上搜过,果然可以。
{
final SpannableStringBuilder sb = new SpannableStringBuilder("your text here");
final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158)); // Span to set text color to some RGB value
final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); // Span to make text bold
sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // Set the text color for first 4 characters
sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make them also bold
yourTextView.setText(sb);
}
另外android帮我们封装了简单的方法。
title.setText(Html.fromHtml("Your big island <b>ADVENTURE!</b>"));
但是,我通过这个方法,在widget中设置,不太可行。又是个疑问了,但到在widget中通过html代码设置字体大小不行么?
如果你经常的使用设置TextView中的字体,最好使用Spannable或SpannableBuilder之类的。网上说Html.fromHtml不是很高效,因为这是通过一个很大的xml来解析的。
我再试试Spannable
TextView TV = (TextView)findViewById(R.id.mytextview01);
Spannable WordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TV.setText(WordtoSpan);
经过测试通过这种方法还是不能够改变widget中的字体大小。
Spannable WordtoSpan = new SpannableString("大字小字");
WordtoSpan.setSpan(new AbsoluteSizeSpan(11), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
WordtoSpan.setSpan(new AbsoluteSizeSpan(21), 2, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
remoteViews.setCharSequence(R.id.text11, "setText", WordtoSpan.toString());
ComponentName com = new ComponentName("com.jftt.widget", "com.jftt.widget.MyWidgetProvider");
appWidgetManager.updateAppWidget(com, remoteViews);
经过我的修改终于成功了,原来试试自己使用错误啊。下边是正确代码。
Spannable WordtoSpan = new SpannableString("大字小字");
WordtoSpan.setSpan(new AbsoluteSizeSpan(20), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
WordtoSpan.setSpan(new AbsoluteSizeSpan(14), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
remoteViews.setCharSequence(R.id.text11, "setText", WordtoSpan);
ComponentName com = new ComponentName("com.jftt.widget", "com.jftt.widget.MyWidgetProvider");
appWidgetManager.updateAppWidget(com, remoteViews);
相信对比可以看出我错在哪里了吧!是的,我错误的使用了toString方法。
效果如图:
- 大小: 3.6 KB
- 大小: 4.1 KB
分享到:
相关推荐
总之,通过利用Android的SpannableString和各种Span,我们可以在一个TextView中轻松地实现不同字体大小和颜色的效果,极大地提升了用户体验和界面设计的灵活性。在开发过程中,掌握这类技术对于构建动态且交互性强的...
在提供的文件“android设置TextView中文字不同的字体大小且垂直居中显示”中,可能包含了一个示例代码或详细步骤,可以帮助开发者更深入地理解这一技术。建议查看该文件以获取更多实践指导。记住,实践中学习和掌握...
通过本文的介绍,我们可以看到在Android中为TextView中的文本添加划线效果是一个相对简单的过程。只需要通过设置Paint对象的标志位即可轻松实现。然而,在实际开发过程中还需要注意一些细节问题,如兼容性、性能以及...
`FontSpan`是Android中的一个自定义`CharacterStyle`,可以用来改变文本的一部分样式,如字体、大小、颜色等。在这里,我们将用它来设置渐变色。首先,我们需要继承`CharacterStyle`并覆写`updateDrawState...
本文实例讲述了Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)。分享给大家供大家参考,具体如下: import android.content.Context; import android.graphics.Color; import android.text....
在许多情况下,我们可能需要对TextView中的文本进行更细致的控制,比如设置某一段文字的颜色或背景色。这涉及到Android的富文本处理,通常会用到Spannable和SpannableString类。本篇文章将详细讲解如何在Android中...
因此,从`EditText`的例子中汲取灵感,可以为`TextView`创建一个自适应字体大小的功能。 实现这个功能通常涉及以下步骤: 1. **计算文本宽度**:首先,需要获取`TextView`的可用宽度,这可以通过`getMeasuredWidth...
`SpannableString`是`String`的一个子类,允许我们在字符串的不同部分设置不同的属性,比如颜色、字体大小等,同时也支持添加点击事件。而`ClickableSpan`是`CharacterStyle`的一个子类,用于实现文本的点击事件。 ...
在Android开发中,TextView是用于显示单行或多行文本的视图组件,它是我们界面设计中不可或缺的一部分。然而,有时我们可能需要在文字中插入图片,以实现更丰富的展示效果。例如,在显示用户头像、表情符号或者特殊...
在Android开发中,`TextView`是用于展示文本的视图组件,它提供了丰富的特性来定制文本的显示方式。本文将详细介绍`TextView`的一些关键XML属性,帮助开发者更好地理解和使用这个组件。 1. `android:autoLink` `...
在Android开发中,TextView是用于显示单行或多行文本的常用组件。然而,有时我们可能需要在文本中插入图片,或者让部分文字具有特殊的颜色效果,以增加界面的交互性和美观性。本教程将深入探讨如何在TextView中实现...
在布局文件中,我们通常通过以下方式声明一个`TextView`: ```xml <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是...
在Android开发中,TextView是用于显示单行或多行文本的常用控件。然而,当文本内容过长时,为了适应屏幕大小,我们需要采取措施来处理这些超长的文本。本篇将详细介绍如何在TextView中实现文字过长时的省略显示和...
在特定场景下,我们可能希望`TextView`中的文本能根据其内容自动调整字体大小,以便所有文字都能在给定的`TextView`区域内完全显示,而不会导致换行或者超出边界。这就是`AutoScale TextView`的概念,它是一种可以...
在`onDraw()`方法中,我们会使用Canvas对象进行实际的绘图工作,而Paint对象则用来设置文字样式,如颜色、字体、大小等。我们可以通过改变Paint对象的属性,然后在Canvas上重新绘制TextView的内容,以实现动态效果...
在Android开发中,TextView是用于显示文本的基本组件,但有时候我们可能会遇到一个问题,那就是TextView在显示文本时可能会提前换行,这通常是由于图文混排、特殊字符或者特定字体大小导致的布局计算错误。...
`TextView`提供了`SpannableString`和`SpannableStringBuilder`类,它们可以用来创建具有不同属性的字符串,比如改变颜色、字体大小等。以下是如何使用它们来设置部分文字颜色: ```java // 创建一个可变的...
当然,这只是一个基础的实现,实际项目中可能需要处理更多复杂情况,例如文字有多行、图片大小不固定等。在这种情况下,可能需要使用`StaticLayout`或`Layout`类来更准确地控制文字的布局。同时,为了保持代码的可...