Android TextView的一些常见功能
简介
TextView作为Android开发中的基础控件,在日常开发中我们频繁使用到TextView的一些功能.这里就简单总结了一下开发中常用的一些功能
功能
- 设置大小不一的文字
- 设置中划下
- 设置小数点以后文字字体大小
- 设置不同颜色展示文字
- 展示图文混排
实现
1 设置中划线
/**
* 中间划线的效果
* @param textView
*/
public static void setStrikethrough(TextView textView){
textView.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
}
2.设置不同文字大小
/**
* Html 方式设置不同文字大小
* @param textview
* @param money
*/
public static void setMoney(TextView textview,double money){
String moneyss= "¥ %s";
String moneyContent=String.format(moneyss,getNumDiff(money));
textview.setText(Html.fromHtml(moneyContent));
}
/**
* span 方式设置 不同字体大小
* @param textview
* @param money
* @param sizeSpan 字体大小 大于100 是比设置的字体大 小于100是比设置的小
*/
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.设置小数点以后文字大小
/**
* 设置小数点以后文字大小
* @param textview
* @param money
* @param sizeSpan 字体大小 大于100 是比设置的字体大 小于100是比设置的小
*/
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.设置不同文字展示
/**
* html方式
* 设置字体的不同颜色
* @param textview
* @param content
*/
public static void setColor(TextView textview,String content){
// String str6 = "我的作业完成了";
String moneyss= "%s %s";
String strigContent=String.format(moneyss,"我的","作业完成了");
textview.setText(Html.fromHtml(strigContent));
}
/**
* 设置文字颜色 span 方式
* @param textview
* @param content
* @param endSize
*/
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.设置图文混排
/**
* 设置图片
* @param mContext
* @param textview
* @param content
*/
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的自定义库放在下边了
共有 0 条评论