1、优化直播间聊天换行问题
2、PK连麦 结束图标(英文)更换
This commit is contained in:
parent
151abf13e8
commit
95128b64ea
@ -381,7 +381,7 @@
|
|||||||
<string name="live_follow_anchor">has followed the anchor</string>
|
<string name="live_follow_anchor">has followed the anchor</string>
|
||||||
<string name="live_report">Are you sure to report?</string>
|
<string name="live_report">Are you sure to report?</string>
|
||||||
<string name="live_link_mic_2">Interaction</string>
|
<string name="live_link_mic_2">Interaction</string>
|
||||||
<string name="live_link_mic_3">Quit even wheat</string>
|
<string name="live_link_mic_3">End mic</string>
|
||||||
<string name="live_link_mic_4">Allowed even wheat</string>
|
<string name="live_link_mic_4">Allowed even wheat</string>
|
||||||
<string name="live_link_mic_5">Ban Lian Mai</string>
|
<string name="live_link_mic_5">Ban Lian Mai</string>
|
||||||
<string name="link_mic_wait">Initiate a link request</string>
|
<string name="link_mic_wait">Initiate a link request</string>
|
||||||
|
@ -949,6 +949,8 @@ public class LiveTextRender {
|
|||||||
// availableWidth textView 可用宽度 prefixWidth 图片宽度
|
// availableWidth textView 可用宽度 prefixWidth 图片宽度
|
||||||
int availableWidth = textView.getWidth() - textView.getPaddingLeft() - textView.getPaddingRight();
|
int availableWidth = textView.getWidth() - textView.getPaddingLeft() - textView.getPaddingRight();
|
||||||
// Log.e("renderChatNew", "availableWidth: " + availableWidth);
|
// Log.e("renderChatNew", "availableWidth: " + availableWidth);
|
||||||
|
// Log.e("renderChatNew", "textView.getPaddingLeft(): " + textView.getPaddingLeft());
|
||||||
|
// Log.e("renderChatNew", "textView.getPaddingRight(): " + textView.getPaddingRight());
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
String name = bean.getUserNiceName();
|
String name = bean.getUserNiceName();
|
||||||
@ -966,22 +968,25 @@ public class LiveTextRender {
|
|||||||
|
|
||||||
if (nameWidth + prefixWidth > availableWidth) {
|
if (nameWidth + prefixWidth > availableWidth) {
|
||||||
StringBuilder sb_tmp = new StringBuilder();
|
StringBuilder sb_tmp = new StringBuilder();
|
||||||
|
StringBuilder saveContentSB = new StringBuilder();
|
||||||
int initImageWidth = prefixWidth;
|
int initImageWidth = prefixWidth;
|
||||||
|
|
||||||
for (int i = 0; i < sb.length(); i++) {
|
for (int i = 0; i < sb.length(); i++) {
|
||||||
char content = sb.charAt(i);
|
char content = sb.charAt(i);
|
||||||
sb_tmp.append(content);
|
sb_tmp.append(content);
|
||||||
float measuredText = paint.measureText(sb_tmp.toString()) + initImageWidth;
|
float measuredTextWidth = paint.measureText(sb_tmp.toString()) + initImageWidth;
|
||||||
// Log.e("renderChatNew", "measuredText: " + measuredText + " availableWidth: " + availableWidth);
|
// Log.e("renderChatNew", "文字:" + sb_tmp.toString() + " measuredTextWidth: " + measuredTextWidth + " initImageWidth:" + initImageWidth + " availableWidth: " + availableWidth);
|
||||||
if (measuredText > availableWidth) {
|
if (measuredTextWidth > availableWidth) {
|
||||||
initImageWidth = 0;
|
initImageWidth = 0;
|
||||||
sb_tmp.deleteCharAt(sb_tmp.length() - 1);
|
saveContentSB.append("\n");
|
||||||
sb_tmp.append("\n");
|
|
||||||
sb_tmp.append(content);
|
|
||||||
// Log.e("renderChatNew", "sb_tmp.toString():" + sb_tmp.toString());
|
// Log.e("renderChatNew", "sb_tmp.toString():" + sb_tmp.toString());
|
||||||
|
sb_tmp.setLength(0);
|
||||||
|
sb_tmp.append(content);
|
||||||
}
|
}
|
||||||
|
saveContentSB.append(content);
|
||||||
|
// Log.e("renderChatNew", "saveContentSB.toString():" + saveContentSB.toString());
|
||||||
}
|
}
|
||||||
builder.append(sb_tmp);
|
builder.append(saveContentSB);
|
||||||
// Log.e("renderChatNew", "builder.toString():" + builder.toString());
|
// Log.e("renderChatNew", "builder.toString():" + builder.toString());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -1030,25 +1035,25 @@ public class LiveTextRender {
|
|||||||
}
|
}
|
||||||
SpannableStringBuilder sb = new SpannableStringBuilder();
|
SpannableStringBuilder sb = new SpannableStringBuilder();
|
||||||
sb.append(name);
|
sb.append(name);
|
||||||
float measuredText = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
float measuredTextWidth = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
||||||
// Rect mRect = new Rect();
|
// Rect mRect = new Rect();
|
||||||
// textView.getPaint().getTextBounds(sb.toString(), 0, sb.length(), mRect);
|
// textView.getPaint().getTextBounds(sb.toString(), 0, sb.length(), mRect);
|
||||||
int width = (int) (((ViewGroup) textView.getParent()).getMeasuredWidth() - prefixEmpty);
|
int width = (int) (((ViewGroup) textView.getParent()).getMeasuredWidth() - prefixEmpty);
|
||||||
String TAG = "文字渲染";
|
String TAG = "文字渲染";
|
||||||
// Log.i(TAG, "测算|" + measuredText + "|" + mRect.width() + "|" + sb.toString());
|
// Log.i(TAG, "测算|" + measuredTextWidth + "|" + mRect.width() + "|" + sb.toString());
|
||||||
//|810|810|810|786|786
|
//|810|810|810|786|786
|
||||||
// Log.i(TAG, "控件宽度|" + width + "|" + ((ViewGroup) textView.getParent()).getWidth() + "|" + ((ViewGroup) textView.getParent()).getMeasuredWidth() + "|" + textView.getWidth() + "|" + textView.getMeasuredWidth());
|
// Log.i(TAG, "控件宽度|" + width + "|" + ((ViewGroup) textView.getParent()).getWidth() + "|" + ((ViewGroup) textView.getParent()).getMeasuredWidth() + "|" + textView.getWidth() + "|" + textView.getMeasuredWidth());
|
||||||
// Log.i(TAG, "前缀预留宽度|" + prefixWidth + "|" + prefixEmpty);
|
// Log.i(TAG, "前缀预留宽度|" + prefixWidth + "|" + prefixEmpty);
|
||||||
// Log.i(TAG, "renderChat: " + textView.getCompoundPaddingLeft() + "|" + textView.getCompoundPaddingRight() + "|");
|
// Log.i(TAG, "renderChat: " + textView.getCompoundPaddingLeft() + "|" + textView.getCompoundPaddingRight() + "|");
|
||||||
//检测渲染后图标+名字是否超过父布局宽度,超过了就做换行处理
|
//检测渲染后图标+名字是否超过父布局宽度,超过了就做换行处理
|
||||||
String prefixName = "";
|
String prefixName = "";
|
||||||
if (measuredText > width) {
|
if (measuredTextWidth > width) {
|
||||||
sb.clear();
|
sb.clear();
|
||||||
for (int i = 0; i < name.length(); i++) {
|
for (int i = 0; i < name.length(); i++) {
|
||||||
sb.append(name.charAt(i));
|
sb.append(name.charAt(i));
|
||||||
measuredText = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
measuredTextWidth = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
||||||
Log.i(TAG, i + "逐测算|" + measuredText + "|" + textTemp);
|
Log.i(TAG, i + "逐测算|" + measuredTextWidth + "|" + textTemp);
|
||||||
if (measuredText > width) {
|
if (measuredTextWidth > width) {
|
||||||
prefixName = name.substring(0, i + textTemp);
|
prefixName = name.substring(0, i + textTemp);
|
||||||
name = prefixName + "\n" + name.substring(i + textTemp);
|
name = prefixName + "\n" + name.substring(i + textTemp);
|
||||||
break;
|
break;
|
||||||
@ -1079,12 +1084,12 @@ public class LiveTextRender {
|
|||||||
Log.i(TAG, "renderChat: " + content);
|
Log.i(TAG, "renderChat: " + content);
|
||||||
sb.append(name).append(content);
|
sb.append(name).append(content);
|
||||||
SpannableStringBuilder csb = null;
|
SpannableStringBuilder csb = null;
|
||||||
measuredText = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
measuredTextWidth = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
||||||
sb.clear();
|
sb.clear();
|
||||||
sb.append(prefixName);
|
sb.append(prefixName);
|
||||||
prefixEmpty = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
prefixEmpty = textView.getPaint().measureText(sb, 0, sb.length()) + prefixWidth;
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
if (measuredText > width) {
|
if (measuredTextWidth > width) {
|
||||||
sb.clear();
|
sb.clear();
|
||||||
sb.append(name);
|
sb.append(name);
|
||||||
float lineWidth = 0;
|
float lineWidth = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user