当前位置:网站首页>【分享】代码编程习惯:在多参数的方法的情况下需要对方法整理-即最多参数的方法为主要实现
【分享】代码编程习惯:在多参数的方法的情况下需要对方法整理-即最多参数的方法为主要实现
2022-08-05 11:46:00 【ChrisEighteen18】
背景
这是一个编写代码的习惯。在多参数同样功能的方法会推荐使用在最多参数的方法内实现,详见代码解析;
最开始的代码
对textView 带有不同颜色和图片操作。
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.text.style.ImageSpan;
/*** * 该工具类对TextView 的文本颜色进行设置: * 目前是前半部分以黄色为主,后半部分的主体Text以#FFFFFF为主 * written by Chris on 2022-07-14 */
public class TextColorHandler {
static String colorString = "#FFB763"; // 换色
static String defaultColorString = "#FFFFFF";
public static SpannableStringBuilder handlerMessage(String front, String content,String splitInfo,String color) {
colorString = color;
return handlerMessage(front,content,splitInfo);
};
public static SpannableStringBuilder handlerMessage(String front, String content,String splitInfo) {
// 文本颜色区分
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
ForegroundColorSpan frontColor = new ForegroundColorSpan(Color.parseColor("#FFB763"));
ForegroundColorSpan backColor = new ForegroundColorSpan(Color.parseColor("#FFFFFF"));
ForegroundColorSpan frontColor = new ForegroundColorSpan(Color.parseColor(colorString));
ForegroundColorSpan backColor = new ForegroundColorSpan(Color.parseColor(defaultColorString));
int length = stringBuilder.length();
stringBuilder.append(front + splitInfo);
stringBuilder.setSpan(frontColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
length = stringBuilder.length();
stringBuilder.append(content);
stringBuilder.setSpan(backColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
colorString = "#FFB763";// 记得还原回去
return stringBuilder;
}
public static SpannableStringBuilder handleMessageWithPicture(String front, String content,Drawable drawable,String color) {
colorString = color;
return handleMessageWithPicture(front,content,drawable);
};
// 在文本中添加图片操作
public static SpannableStringBuilder handleMessageWithPicture(String front, String content, Drawable drawable) {
// 文本颜色区分
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
ForegroundColorSpan frontColor = new ForegroundColorSpan(Color.parseColor("#FFB763"));
ForegroundColorSpan backColor = new ForegroundColorSpan(Color.parseColor("#FFFFFF"));
ForegroundColorSpan frontColor = new ForegroundColorSpan(Color.parseColor(colorString));
ForegroundColorSpan backColor = new ForegroundColorSpan(Color.parseColor(defaultColorString));
int length = stringBuilder.length();
stringBuilder.append(front+" ");
stringBuilder.setSpan(frontColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
length = stringBuilder.length();
//添加图片
drawable.setBounds(drawable.getBounds().left, drawable.getBounds().top, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
stringBuilder.append(" ");//放置图片
stringBuilder.setSpan(span, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
stringBuilder.append(" "+content);
stringBuilder.setSpan(backColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
colorString = "#FFB763";// 记得还原回去
return stringBuilder;
}
}
优化后的代码
package im.zego.libimchat.view.utils;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.text.style.ImageSpan;
/*** * 该工具类对TextView 的文本颜色进行设置: * 目前是前半部分以黄色为主,后半部分的主体Text以#FFFFFF为主 * written by Chris on 2022-07-14 */
public class TextColorHandler {
static int colorString = Color.parseColor("#FFB763"); // 换色 为黄色
static int defaultColorString = Color.parseColor("#FFFFFF");
public static SpannableStringBuilder handlerMessage(String front, String content,String splitInfo,int color) {
// 文本颜色区分
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
ForegroundColorSpan frontColor = new ForegroundColorSpan(color);
ForegroundColorSpan backColor = new ForegroundColorSpan(defaultColorString);
int length = stringBuilder.length();
stringBuilder.append(front + splitInfo);
stringBuilder.setSpan(frontColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
length = stringBuilder.length();
stringBuilder.append(content);
stringBuilder.setSpan(backColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
return stringBuilder;
}
public static SpannableStringBuilder handlerMessage(String front, String content,String splitInfo) {
return handlerMessage(front, content, splitInfo, colorString);
}
public static SpannableStringBuilder handleMessageWithPicture(String front, String content,Drawable drawable,int color) {
// 文本颜色区分
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
ForegroundColorSpan frontColor = new ForegroundColorSpan(color);
ForegroundColorSpan backColor = new ForegroundColorSpan(defaultColorString);
int length = stringBuilder.length();
stringBuilder.append(front+" ");
stringBuilder.setSpan(frontColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
length = stringBuilder.length();
//添加图片
drawable.setBounds(drawable.getBounds().left, drawable.getBounds().top, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
stringBuilder.append(" ");//放置图片
stringBuilder.setSpan(span, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
stringBuilder.append(" "+content);
stringBuilder.setSpan(backColor, length, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
return stringBuilder;
};
// 在文本中添加图片操作
public static SpannableStringBuilder handleMessageWithPicture(String front, String content, Drawable drawable) {
return handleMessageWithPicture(front, content, drawable,colorString);
}
}
关键:
public static SpannableStringBuilder handleMessageWithPicture(String front, String content, Drawable drawable) {
return handleMessageWithPicture(front, content, drawable,colorString);
}
整合到一块,代码就比较清晰。
边栏推荐
- power failure...Trouble trouble trouble!!!
- 互联网行业凛冬之至,BATM的程序员是如何应对中年危机的?
- 手把手教你定位线上MySQL慢查询问题,包教包会
- 消息中间件汇总
- Letter from Silicon Valley: Act fast, Facebook, Quora and other successful "artifacts"!
- Hands-on Deep Learning_GoogLeNet / Inceptionv1v2v3v4
- Cesium.js点线面绘制
- 【7.29-8.5】写作社区精彩技术博文回顾
- 不是吧?还有人不会定位线上MySQL慢查询问题?
- 2-2.基金的投资交易与结算
猜你喜欢

163_Tricks_Power BI one-click batch creation of custom field parameters

Learning Deep Compact Image Representations for Visual Tracking

朴素贝叶斯

动手学深度学习_GoogLeNet / Inceptionv1v2v3v4

普通二本毕业八年,京东就职两年、百度三年,分享大厂心得

IPMP、PMP、CPMP三个证书该如何选择,有什么区别,哪个对于工作上的

Cesium.js 三维土壤地质剖面分割挖掘

Security Issues and Prevention in Web3

小红的aba子序列(离散化、二分、dp维护区间最短)

碘乙酰胺在Desthiobiotin-Iodoacetamide试剂中的作用?
随机推荐
Learning Deep Compact Image Representations for Visual Tracking
LeetCode brush questions (8)
WingIDE 7.2.0 远程调试
莅临GOPS大会龙智展位,获取Forrester最新报告:《Forrester Wave:2021年第四季度企业服务管理报告》
使用Netty编写通用redis客户端(可指定服务器地址与端口号连接任意redis)
低代码平台开发有什么好处?
Apache APISIX Ingress v1.5-rc1 发布
时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理
【硬件架构的艺术】学习笔记(3)处理多个时钟
The principle and application scenario of mysql master-slave synchronization
再获殊荣 | 赛宁网安入选2022年度“培育独角兽”企业榜单
Wingide 快捷键
【心里效应】98 个著名的心理效应
官方发布·2022南京智博会定于10月份在新庄国展召开
不是吧?还有人不会定位线上MySQL慢查询问题?
What do T and Z in the time format 2020-01-13T16:00:00.000Z represent and how to deal with them
WPF开发随笔收录-WriteableBitmap绘制高性能曲线图
163_Tricks_Power BI one-click batch creation of custom field parameters
Android development with Kotlin programming language II Conditional control
Mathcad 15.0软件安装包下载及安装教程