当前位置:网站首页>【分享】代码编程习惯:在多参数的方法的情况下需要对方法整理-即最多参数的方法为主要实现
【分享】代码编程习惯:在多参数的方法的情况下需要对方法整理-即最多参数的方法为主要实现
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);
}
整合到一块,代码就比较清晰。
边栏推荐
- The principle and application scenario of mysql master-slave synchronization
- Keras 模型多输出 loss weight metrics 设置
- 60行从零开始自己动手写FutureTask是什么体验?
- 支持向量机SVM
- I'm going crazy.Again A few days can not be A problem
- 2-2.基金的投资交易与结算
- Keras 分割网络自定义评估函数 - mean iou
- 基于NSQ搭建高可用分布式消息队列
- Visit GOPS Long Zhi booth, Forrester's latest report: "the Forrester Wave: the fourth quarter of 2021 enterprise service management report
- SonarQube即将亮相第十八届GOPS全球运维大会
猜你喜欢
The importance of parameter naming, remember a JDBC parameter conflict

D-Desthiobiotin-PEG4-Maleimide主要物理性质特点 !

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

再获殊荣 | 赛宁网安入选2022年度“培育独角兽”企业榜单

四、kubeadm单master

深度学习(四)分析问题与调参 理论部分

详细剖析 Redis 三种集群策略

【硬件架构的艺术】学习笔记(3)处理多个时钟

Hands-on Deep Learning_GoogLeNet / Inceptionv1v2v3v4

莅临GOPS大会龙智展位,获取Forrester最新报告:《Forrester Wave:2021年第四季度企业服务管理报告》
随机推荐
How about Ping An Mengwa Card Insurance?Let parents read a few ways to identify products
关注微信公众号,自动登陆网站
常见的 web 安全问题总结
提问题进不去。想问大家一个关于返回值的问题(图的遍历),求给小白解答啊
前沿技术数字孪生如何应用在智慧城市上?
hdu1455 Sticks(搜索+剪枝+剪枝+.....+剪枝)
SonarQube即将亮相第十八届GOPS全球运维大会
Wingide 快捷键
Integration testing of software testing
小红的aba子序列(离散化、二分、dp维护区间最短)
多业务模式下的交易链路探索与实践
60行从零开始自己动手写FutureTask是什么体验?
【HMS core】【FAQ】Health Kit、Ads kit、push Kit典型问题合集5
623. Add a row to a binary tree: Simple binary tree traversal problems
TiDB 6.0 Placement Rules In SQL Usage Practice
后缀自动机(SAM)——黑盒使用方案
Go编译原理系列9(函数内联)
nyoj1185最大最小值(线段树)
基于NSQ搭建高可用分布式消息队列
手把手教你定位线上MySQL慢查询问题,包教包会