Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)

本文实例讲述了Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)。分享给大家供大家参考,具体如下:

import android.content.Context;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.BackgroundColorSpan;
import android.text.style.BulletSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.ScaleXSpan;
import android.text.style.StrikethroughSpan;
import android.text.style.StyleSpan;
import android.text.style.SubscriptSpan;
import android.text.style.SuperscriptSpan;
import android.text.style.TypefaceSpan;
import android.text.style.UnderlineSpan;
public class TextViewUtil {
  /**
   * 设置字体大小,用px
   *
   * @param context
   *
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param pxSize
   *   像素大小
   * @return
   */
  public SpannableString getSizeSpanUsePx(Context context, String str, int start, int end, int pxSize) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new AbsoluteSizeSpan(pxSize), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置字体大小,用dip
   *
   * @param context
   *
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param dipSize
   *   像素大小
   * @return
   */
  public SpannableString getSizeSpanUseDip(Context context, String str, int start, int end, int dipSize) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new AbsoluteSizeSpan(dipSize, true), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置字体大小,用sp
   *
   * @param context
   *
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param spSize
   *   sp大小
   * @return
   */
  public SpannableString getSizeSpanSpToPx(Context context, String str, int start, int end, int spSize) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new AbsoluteSizeSpan(DisplayUtil.sp2px(context, spSize)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置字体相对大小
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param relativeSize
   *   相对大小 如:0.5f,2.0f
   * @return
   */
  public SpannableString getRelativeSizeSpan(Context context, String str, int start, int end, float relativeSize) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new RelativeSizeSpan(relativeSize), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置字体
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param typeface
   *   字体类型 如:default,efault-bold,monospace,serif,sans-serif
   * @return
   */
  public SpannableString getTypeFaceSpan(Context context, String str, int start, int end, String typeface) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new TypefaceSpan(typeface), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置字体形体
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param style
   *   字体类型 如: Typeface.NORMAL正常 Typeface.BOLD粗体 Typeface.ITALIC斜体
   *   Typeface.BOLD_ITALIC粗斜体
   * @return
   */
  public SpannableString getStyleSpan(Context context, String str, int start, int end, int style) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new StyleSpan(style), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置字体下划线
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @return
   */
  public SpannableString getUnderLineSpan(Context context, String str, int start, int end) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置字体删除线
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @return
   */
  public SpannableString getDeleteLineSpan(Context context, String str, int start, int end) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new StrikethroughSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置上标
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @return
   */
  public SpannableString getSuperscriptSpan(Context context, String str, int start, int end) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new SuperscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置放大系数
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param scale
   *   放大多少倍,x轴方向,y轴不变 如:0.5f, 2.0f
   * @return
   */
  public SpannableString getScaleSpan(Context context, String str, int start, int end, float scale) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new ScaleXSpan(scale), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置下标
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @return
   */
  public SpannableString getSubscriptSpan(Context context, String str, int start, int end) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new SubscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置背景色
   *
   * @param context
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param color
   *   颜色值 如Color.BLACK
   * @return
   */
  public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, int color) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new BackgroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置背景色
   *
   * @param context
   *
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param color
   *   颜色值 如:#CCCCCC
   * @return
   */
  public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, String color) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new BackgroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置前景色
   *
   * @param context
   *
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param color
   *   颜色值 如Color.BLACK
   * @return
   */
  public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, int color) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new ForegroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
  /**
   * 设置前景色
   *
   * @param context
   *
   * @param str
   *   目标字符串
   * @param start
   *   开始位置
   * @param end
   *   结束位置
   * @param color
   *   颜色值 如:#CCCCCC
   * @return
   */
  public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, String color) {
    SpannableString ss = new SpannableString(str);
    ss.setSpan(new ForegroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    return ss;
  }
}

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android编程实现TextView部分颜色变动的方法

    本文实例讲述了Android编程实现TextView部分颜色变动的方法.分享给大家供大家参考,具体如下: public class StringHandleExampleActivity extends Activity { /** Called when the activity is first created. */ private TextView textView; private String tempStr = "abcd12我的中古zx9yu5!f3,,"; priva

  • Android使用selector修改TextView中字体颜色和背景色的方法

    本文实例讲述了Android使用selector修改TextView中字体颜色和背景色的方法.分享给大家供大家参考,具体如下: android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化.这里我说一下TextView中的一些应用. 我想大家都知道,Button按钮在源码上看是一种特殊的TextView,所以我们很多时候,按钮全是使用的TextView来完成,只要加一个android:clickable="true"就可以了. TextVi

  • Android编程设置TextView颜色setTextColor用法实例

    本文实例讲述了Android编程设置TextView颜色setTextColor用法.分享给大家供大家参考,具体如下: android中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数. public void setTextColor(int color) { mTextColor = ColorStateList.valueOf(color); updateTextColors(); } public void setTextColor(Color

  • Android TextView设置背景色与边框的方法详解

    1.在drawable文件夹下面创建setbar_bg.xml 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >    <!-- 背景色 -->    <solid android:color="#FFE4B5&q

  • Android中EditText和AutoCompleteTextView设置文字选中颜色方法

    EditText和AutoCompleteTextView设置文字选中颜色 大多数Android Rom上,文本选择的背景色都是很好看的鲜绿色, 但是在某些垃圾的三星手机上,居然是蓝色,令人恶心反感,其实完全可以通过程序来修改,文本的默认选中背景色. 所用API解释 复制代码 代码如下: android:textColorHighlight Color of the text selection highlight. EditText设置效果 AutoCompleteTextView 设置效果

  • android TextView设置中文字体加粗实现方法

    英文设置加粗可以在xml里面设置: 复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">android:textStyle="bold"</SPAN> 英文还可以直接在String文件里面直接这样填写: 复制代码 代码如下: <string name="styled_text">Plain, <b>bold</b>, <i>italic</

  • Android TextView字体颜色设置方法小结

    本文实例总结了Android TextView字体颜色设置方法.分享给大家供大家参考,具体如下: 对于setTextView(int a)这里的a是传进去颜色的值.例如,红色0xff0000是指0xff0000如何直接传入R.color.red是没有办法设置颜色的,只有通过文章中的第三种方法先拿到资源的颜色值再传进去. tv.setTextColor(this.getResources().getColor(R.color.red)); 关键字: android textview color T

  • Android实现TextView字符串关键字变色的方法

    一.字符串关键字变色 在界面显示的时候,偶尔需要将某些字符串中特定的字符串重点标出 如下图所示: 便有了下面的方法.这个方法针对于比较 固定的字符串 ,并且需要自己 计算 需要变色的文字 位置 ,代码如下: public static CharSequence setColor(Context context, String text, String text1, String text2) { SpannableStringBuilder style = new SpannableString

  • Android编程实现TextView字体颜色设置的方法小结

    本文实例讲述了Android编程实现TextView字体颜色设置的方法.分享给大家供大家参考,具体如下: 对于setTextView(int a)这里的a是传进去颜色的值.例如,红色0xff0000是指0xff0000如何直接传入R.color.red是没有办法设置颜色的,只有通过文章中的第三种方法先拿到资源的颜色值再传进去. 复制代码 代码如下: tv.setTextColor(this.getResources().getColor(R.color.red)); 关键字: android t

  • Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)

    本文实例讲述了Android编程中TextView字体属性设置方法(大小.字体.下划线.背景色).分享给大家供大家参考,具体如下: import android.content.Context; import android.graphics.Color; import android.text.SpannableString; import android.text.Spanned; import android.text.style.AbsoluteSizeSpan; import andr

  • Android编程中TextView宽度过大导致Drawable无法居中问题解决方法

    本文实例讲述了Android编程中TextView宽度过大导致Drawable无法居中问题解决方法.分享给大家供大家参考,具体如下: 在做项目的时候,很多时候我们都要用到文字和图片一起显示,一般设置TextView的DrawableLeft.DrawableRight.DrawableTop.DrawableBottom就行了.但是有一种情况是当TextView的熟悉是fill_parent或者使用权重的时候并且设置了起Gravity的ceter的时候,Drawable图片是无法一起居中的,为了

  • Android开发中TextView各种常见使用方法小结

    本文实例讲述了Android开发中TextView各种常见使用方法.分享给大家供大家参考,具体如下: 效果图: XML布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/root" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:

  • Android编程之手机壁纸WallPaper设置方法示例

    本文实例讲述了Android编程之手机壁纸WallPaper设置方法.分享给大家供大家参考,具体如下: /** * Andorid设置手机屏幕的壁纸 * * @description: * @author ldm * @date 2016-5-4 下午3:08:56 */ public class SetWallpaperActivity extends Activity { // WallpaperManager类:系统壁纸管理.通过它可以获得当前壁纸以及设置指定图片作为系统壁纸. priva

  • Android编程中延后处理事件的方法小结

    本文实例讲述了Android编程中延后处理事件的方法.分享给大家供大家参考,具体如下: 一.Handler和TimerTask相结合 1.首先定义TimerTask TimerTask task = new TimerTask(){ public void run() { Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; 2.定义Handler Handler handler

  • Android编程中读写私有文件的方法

    本文实例讲述了Android编程中读写私有文件的方法.分享给大家供大家参考,具体如下: 所谓私有文件,则是指程序自己能读取,而其它程序没有权限访问的文件,此文件保存在Data.app.程序包.file目录下面. 其中写文件的方法比较简单: private void writeFile(String fileName, String info) { try { FileOutputStream fout = openFileOutput(fileName, MODE_PRIVATE); byte[

  • Android编程中避免内存泄露的方法总结

    Android的应用被限制为最多占用16m的内存,至少在T-Mobile G1上是这样的(当然现在已经有几百兆的内存可以用了--译者注).它包括电话本身占用的和开发者可以使用的两部分.即使你没有占用全部内存的打算,你也应该尽量少的使用内存,以免别的应用在运行的时候关闭你的应用.Android能在内存中保持的应用越多,用户在切换应用的时候就越快.作为我的一项工作,我仔细研究了Android应用的内存泄露问题,大多数情况下它们是由同一个错误引起的,那就是对一个上下文(Context)保持了长时间的引

  • Android UI中TextView的使用方法

    Android UI中TextView的使用方法 一.TextView不同区域设置颜色,大小.点击事件 String msg = getResources().getString(R.string.school_roll_auth); SpannableStringBuilder style = new SpannableStringBuilder(msg); // 设置字体颜色 style.setSpan( new ForegroundColorSpan(getResources().getC

随机推荐