效果.png
简介
TextView作为Android开发中的基础控件,在日常开发中我们频繁使用到TextView的一些功能.这里就简单总结了一下开发中常用的一些功能
功能
- 设置大小不一的文字
- 设置中划下
- 设置小数点以后文字字体大小
- 设置不同颜色展示文字
- 展示图文混排
实现
1 设置中划线
public static void setStrikethrough(TextView textView){
textView.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
}
2.设置不同文字大小
public static void setMoney(TextView textview,double money){
String moneyss= "<font color='#FFFFFF'><small>¥ </small></font><font color='#FFFFFF'><big>%s</big></font>";
String moneyContent=String.format(moneyss,getNumDiff(money));
textview.setText(Html.fromHtml(moneyContent));
}
public static void setMoney(TextView textview,double money,int sizeSpan){
String moneyss= "¥ %s";
String moneyContent=String.format(moneyss,getNumDiff(money));
SpannableString spannableString = new SpannableString(moneyContent);
spannableString.setSpan(new AbsoluteSizeSpan(sizeSpan), 0, 2, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
textview.setText(spannableString);
}
public static String getNumDiff(double count) {
String fansNum = "";
if (count >= 0 && count < 10000) {
fansNum = count + "";
} else if (count >= 10000 && count < 10000000) {
if (count / 1000 % 10 != 0) {
float num = (float) count / 10000;
DecimalFormat decimalFormat = new DecimalFormat("0.0");
fansNum = decimalFormat.format(num).concat("万");
} else {
fansNum = (count / 10000) + "万";
}
} else if (count >= 10000000) {
fansNum = "1000万";
}
return fansNum;
}
3.设置小数点以后文字大小
public static void setMoneyTextView(TextView textview,double money,int sizeSpan){
String moneyss= "¥ %.2f";
String moneyContent=String.format(moneyss,money);
int index=moneyContent.indexOf(".");
SpannableString spannableString = new SpannableString(moneyContent);
spannableString.setSpan(new AbsoluteSizeSpan(sizeSpan), index, moneyContent.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
textview.setText(spannableString);
}
4.设置不同文字展示
public static void setColor(TextView textview,String content){
// String str6 = "<font color=\"#00ff00\">我的</font><font color=\"#0000ff\">作业完成了</font>";
String moneyss= "%s <font color=\"#FF0000\">%s</font>";
String strigContent=String.format(moneyss,"我的","作业完成了");
textview.setText(Html.fromHtml(strigContent));
}
public static void setColor(TextView textview,String content,int endSize){
SpannableString spannableString = new SpannableString(content);
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), endSize, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(spannableString);
}
5.设置图文混排
public static void setDrawable(Context mContext, TextView textview, String content){
SpannableString spannableString = new SpannableString(" "+content);
//这只图片的宽高
Drawable drawable = mContext.getResources().getDrawable(R.mipmap.ic_launcher);
drawable.setBounds(0, 0, 100, 100);
ImageSpan imageSpan = new ImageSpan(drawable);
spannableString.setSpan(imageSpan, 0, 1, ImageSpan.ALIGN_baseLINE);
Drawable drawable2 = mContext.getResources().getDrawable(R.mipmap.ic_launcher);
drawable2.setBounds(0, 0, 100, 100);
ImageSpan imageSpan2 = new ImageSpan(drawable2);
spannableString.setSpan(imageSpan2, 2, 3, ImageSpan.ALIGN_baseLINE);
textview.setText(spannableString);
}
注意
图文混排建议web加载标签方式实现
总结
简单的总结了一下TextView常见的一些展示样式,还有一些处理相对麻烦的,比如扩展TextView 指定类型文字高亮展示这里没做展开.后期继续总结.高亮和扩展的TextView的自定义库放在下边了
资源
高亮和扩展的TextView