首页 > 系统 > Android > 正文

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

2019-10-24 20:35:36
字体:
来源:转载
供稿:网友

这篇文章主要介绍了Android编程中TextView字体属性设置方法,包括大小、字体、下划线、背景色等设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下

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

 

 
  1. import android.content.Context; 
  2. import android.graphics.Color; 
  3. import android.text.SpannableString; 
  4. import android.text.Spanned; 
  5. import android.text.style.AbsoluteSizeSpan; 
  6. import android.text.style.BackgroundColorSpan; 
  7. import android.text.style.BulletSpan; 
  8. import android.text.style.ForegroundColorSpan; 
  9. import android.text.style.RelativeSizeSpan; 
  10. import android.text.style.ScaleXSpan; 
  11. import android.text.style.StrikethroughSpan; 
  12. import android.text.style.StyleSpan; 
  13. import android.text.style.SubscriptSpan; 
  14. import android.text.style.SuperscriptSpan; 
  15. import android.text.style.TypefaceSpan; 
  16. import android.text.style.UnderlineSpan; 
  17. public class TextViewUtil { 
  18. /** 
  19. * 设置字体大小,用px 
  20.  
  21. * @param context 
  22.  
  23. * @param str 
  24. * 目标字符串 
  25. * @param start 
  26. * 开始位置 
  27. * @param end 
  28. * 结束位置 
  29. * @param pxSize 
  30. * 像素大小 
  31. * @return 
  32. */ 
  33. public SpannableString getSizeSpanUsePx(Context context, String str, int start, int end, int pxSize) { 
  34. SpannableString ss = new SpannableString(str); 
  35. ss.setSpan(new AbsoluteSizeSpan(pxSize), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  36. return ss; 
  37. /** 
  38. * 设置字体大小,用dip 
  39.  
  40. * @param context 
  41.  
  42. * @param str 
  43. * 目标字符串 
  44. * @param start 
  45. * 开始位置 
  46. * @param end 
  47. * 结束位置 
  48. * @param dipSize 
  49. * 像素大小 
  50. * @return 
  51. */ 
  52. public SpannableString getSizeSpanUseDip(Context context, String str, int start, int end, int dipSize) { 
  53. SpannableString ss = new SpannableString(str); 
  54. ss.setSpan(new AbsoluteSizeSpan(dipSize, true), 4, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  55. return ss; 
  56. /** 
  57. * 设置字体大小,用sp 
  58.  
  59. * @param context 
  60.  
  61. * @param str 
  62. * 目标字符串 
  63. * @param start 
  64. * 开始位置 
  65. * @param end 
  66. * 结束位置 
  67. * @param spSize 
  68. * sp大小 
  69. * @return 
  70. */ 
  71. public SpannableString getSizeSpanSpToPx(Context context, String str, int start, int end, int spSize) { 
  72. SpannableString ss = new SpannableString(str); 
  73. ss.setSpan(new AbsoluteSizeSpan(DisplayUtil.sp2px(context, spSize)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  74. return ss; 
  75. /** 
  76. * 设置字体相对大小 
  77.  
  78. * @param context 
  79. * @param str 
  80. * 目标字符串 
  81. * @param start 
  82. * 开始位置 
  83. * @param end 
  84. * 结束位置 
  85. * @param relativeSize 
  86. * 相对大小 如:0.5f,2.0f 
  87. * @return 
  88. */ 
  89. public SpannableString getRelativeSizeSpan(Context context, String str, int start, int end, float relativeSize) { 
  90. SpannableString ss = new SpannableString(str); 
  91. ss.setSpan(new RelativeSizeSpan(relativeSize), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  92. return ss; 
  93. /** 
  94. * 设置字体 
  95.  
  96. * @param context 
  97. * @param str 
  98. * 目标字符串 
  99. * @param start 
  100. * 开始位置 
  101. * @param end 
  102. * 结束位置 
  103. * @param typeface 
  104. * 字体类型 如:default,efault-bold,monospace,serif,sans-serif 
  105. * @return 
  106. */ 
  107. public SpannableString getTypeFaceSpan(Context context, String str, int start, int end, String typeface) { 
  108. SpannableString ss = new SpannableString(str); 
  109. ss.setSpan(new TypefaceSpan(typeface), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  110. return ss; 
  111. /** 
  112. * 设置字体形体 
  113.  
  114. * @param context 
  115. * @param str 
  116. * 目标字符串 
  117. * @param start 
  118. * 开始位置 
  119. * @param end 
  120. * 结束位置 
  121. * @param style 
  122. * 字体类型 如: Typeface.NORMAL正常 Typeface.BOLD粗体 Typeface.ITALIC斜体 
  123. * Typeface.BOLD_ITALIC粗斜体 
  124. * @return 
  125. */ 
  126. public SpannableString getStyleSpan(Context context, String str, int start, int end, int style) { 
  127. SpannableString ss = new SpannableString(str); 
  128. ss.setSpan(new StyleSpan(style), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  129. return ss; 
  130. /** 
  131. * 设置字体下划线 
  132.  
  133. * @param context 
  134. * @param str 
  135. * 目标字符串 
  136. * @param start 
  137. * 开始位置 
  138. * @param end 
  139. * 结束位置 
  140. * @return 
  141. */ 
  142. public SpannableString getUnderLineSpan(Context context, String str, int start, int end) { 
  143. SpannableString ss = new SpannableString(str); 
  144. ss.setSpan(new UnderlineSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  145. return ss; 
  146. /** 
  147. * 设置字体删除线 
  148.  
  149. * @param context 
  150. * @param str 
  151. * 目标字符串 
  152. * @param start 
  153. * 开始位置 
  154. * @param end 
  155. * 结束位置 
  156. * @return 
  157. */ 
  158. public SpannableString getDeleteLineSpan(Context context, String str, int start, int end) { 
  159. SpannableString ss = new SpannableString(str); 
  160. ss.setSpan(new StrikethroughSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  161. return ss; 
  162. /** 
  163. * 设置上标 
  164.  
  165. * @param context 
  166. * @param str 
  167. * 目标字符串 
  168. * @param start 
  169. * 开始位置 
  170. * @param end 
  171. * 结束位置 
  172. * @return 
  173. */ 
  174. public SpannableString getSuperscriptSpan(Context context, String str, int start, int end) { 
  175. SpannableString ss = new SpannableString(str); 
  176. ss.setSpan(new SuperscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  177. return ss; 
  178. /** 
  179. * 设置放大系数 
  180.  
  181. * @param context 
  182. * @param str 
  183. * 目标字符串 
  184. * @param start 
  185. * 开始位置 
  186. * @param end 
  187. * 结束位置 
  188. * @param scale 
  189. * 放大多少倍,x轴方向,y轴不变 如:0.5f, 2.0f 
  190. * @return 
  191. */ 
  192. public SpannableString getScaleSpan(Context context, String str, int start, int end, float scale) { 
  193. SpannableString ss = new SpannableString(str); 
  194. ss.setSpan(new ScaleXSpan(scale), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  195. return ss; 
  196. /** 
  197. * 设置下标 
  198.  
  199. * @param context 
  200. * @param str 
  201. * 目标字符串 
  202. * @param start 
  203. * 开始位置 
  204. * @param end 
  205. * 结束位置 
  206. * @return 
  207. */ 
  208. public SpannableString getSubscriptSpan(Context context, String str, int start, int end) { 
  209. SpannableString ss = new SpannableString(str); 
  210. ss.setSpan(new SubscriptSpan(), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  211. return ss; 
  212. /** 
  213. * 设置背景色 
  214.  
  215. * @param context 
  216. * @param str 
  217. * 目标字符串 
  218. * @param start 
  219. * 开始位置 
  220. * @param end 
  221. * 结束位置 
  222. * @param color 
  223. * 颜色值 如Color.BLACK 
  224. * @return 
  225. */ 
  226. public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, int color) { 
  227. SpannableString ss = new SpannableString(str); 
  228. ss.setSpan(new BackgroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  229. return ss; 
  230. /** 
  231. * 设置背景色 
  232.  
  233. * @param context 
  234.  
  235. * @param str 
  236. * 目标字符串 
  237. * @param start 
  238. * 开始位置 
  239. * @param end 
  240. * 结束位置 
  241. * @param color 
  242. * 颜色值 如:#CCCCCC 
  243. * @return 
  244. */ 
  245. public SpannableString getBackGroundColorSpan(Context context, String str, int start, int end, String color) { 
  246. SpannableString ss = new SpannableString(str); 
  247. ss.setSpan(new BackgroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  248. return ss; 
  249. /** 
  250. * 设置前景色 
  251.  
  252. * @param context 
  253.  
  254. * @param str 
  255. * 目标字符串 
  256. * @param start 
  257. * 开始位置 
  258. * @param end 
  259. * 结束位置 
  260. * @param color 
  261. * 颜色值 如Color.BLACK 
  262. * @return 
  263. */ 
  264. public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, int color) { 
  265. SpannableString ss = new SpannableString(str); 
  266. ss.setSpan(new ForegroundColorSpan(color), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  267. return ss; 
  268. /** 
  269. * 设置前景色 
  270.  
  271. * @param context 
  272.  
  273. * @param str 
  274. * 目标字符串 
  275. * @param start 
  276. * 开始位置 
  277. * @param end 
  278. * 结束位置 
  279. * @param color 
  280. * 颜色值 如:#CCCCCC 
  281. * @return 
  282. */ 
  283. public SpannableString getForegroundColorSpan(Context context, String str, int start, int end, String color) { 
  284. SpannableString ss = new SpannableString(str); 
  285. ss.setSpan(new ForegroundColorSpan(Color.parseColor(color)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
  286. return ss; 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表