From a38b3a3093bed04980a4b47d803b03b354283202 Mon Sep 17 00:00:00 2001 From: AI Bot Date: Fri, 5 Jun 2026 09:49:46 +0800 Subject: [PATCH] fix: restore compact android ui density --- .../src/main/java/com/hyzq/boss/BossUi.java | 235 +++++++++++------- .../main/java/com/hyzq/boss/MainActivity.java | 14 +- .../res/layout/activity_conversation_info.xml | 28 +-- .../res/layout/activity_forward_target.xml | 28 +-- .../main/res/layout/activity_group_create.xml | 28 +-- .../main/res/layout/activity_group_info.xml | 28 +-- .../app/src/main/res/layout/activity_main.xml | 50 ++-- .../main/res/layout/activity_project_chat.xml | 28 +-- .../src/main/res/layout/activity_screen.xml | 28 +-- .../hyzq/boss/BossUiConversationRowTest.java | 22 +- .../com/hyzq/boss/BossUiRootSurfaceTest.java | 8 +- .../hyzq/boss/BossUiTopActionStyleTest.java | 8 +- .../boss/ConversationInfoActivityTest.java | 4 +- 13 files changed, 299 insertions(+), 210 deletions(-) diff --git a/android/app/src/main/java/com/hyzq/boss/BossUi.java b/android/app/src/main/java/com/hyzq/boss/BossUi.java index d5a1fd6..8114b47 100644 --- a/android/app/src/main/java/com/hyzq/boss/BossUi.java +++ b/android/app/src/main/java/com/hyzq/boss/BossUi.java @@ -33,6 +33,8 @@ import android.content.res.ColorStateList; import org.json.JSONArray; import org.json.JSONObject; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; public final class BossUi { @@ -127,9 +129,9 @@ public final class BossUi { public static void applyTopIconButtonStyle(Context context, ImageButton button) { button.setBackgroundResource(R.drawable.bg_top_icon_button); - button.setMinimumWidth(dp(context, 40)); - button.setMinimumHeight(dp(context, 40)); - button.setPadding(dp(context, 8), dp(context, 8), dp(context, 8), dp(context, 8)); + button.setMinimumWidth(dp(context, 36)); + button.setMinimumHeight(dp(context, 36)); + button.setPadding(dp(context, 7), dp(context, 7), dp(context, 7), dp(context, 7)); ImageViewCompat.setImageTintList(button, ColorStateList.valueOf(context.getColor(R.color.boss_text_primary))); } @@ -235,7 +237,7 @@ public final class BossUi { ); params.bottomMargin = dp(context, 1); row.setLayoutParams(params); - row.setPadding(dp(context, 16), dp(context, 14), dp(context, 16), dp(context, 14)); + row.setPadding(dp(context, 14), dp(context, 10), dp(context, 14), dp(context, 10)); row.setBackgroundResource(R.drawable.bg_list_row); if (listener != null) { row.setClickable(true); @@ -254,7 +256,7 @@ public final class BossUi { TextView titleView = new TextView(context); titleView.setText(title); - titleView.setTextSize(17); + titleView.setTextSize(16); titleView.setTypeface(Typeface.DEFAULT_BOLD); titleView.setTextColor(context.getColor(R.color.boss_text_primary)); textWrap.addView(titleView); @@ -262,7 +264,7 @@ public final class BossUi { if (!TextUtils.isEmpty(subtitle)) { TextView subtitleView = new TextView(context); subtitleView.setText(subtitle); - subtitleView.setTextSize(14); + subtitleView.setTextSize(13); subtitleView.setTextColor(context.getColor(R.color.boss_text_muted)); subtitleView.setPadding(0, dp(context, 4), 0, 0); textWrap.addView(subtitleView); @@ -271,7 +273,7 @@ public final class BossUi { if (!TextUtils.isEmpty(meta)) { TextView metaView = new TextView(context); metaView.setText(meta); - metaView.setTextSize(12); + metaView.setTextSize(11); metaView.setTextColor(context.getColor(R.color.boss_text_soft)); metaView.setPadding(0, dp(context, 6), 0, 0); textWrap.addView(metaView); @@ -378,7 +380,7 @@ public final class BossUi { LinearLayout row = buildListRow(context, title, subtitle, meta, badge, listener); row.setBackgroundColor(Color.WHITE); row.setElevation(0f); - row.setPadding(dp(context, 16), dp(context, 13), dp(context, 16), dp(context, 13)); + row.setPadding(dp(context, 14), dp(context, 10), dp(context, 14), dp(context, 10)); return row; } @@ -397,7 +399,7 @@ public final class BossUi { ); row.setLayoutParams(params); row.setBackgroundColor(Color.WHITE); - row.setPadding(dp(context, 18), dp(context, 15), dp(context, 18), dp(context, 15)); + row.setPadding(dp(context, 14), dp(context, 10), dp(context, 14), dp(context, 10)); LinearLayout textWrap = new LinearLayout(context); textWrap.setOrientation(LinearLayout.VERTICAL); @@ -409,7 +411,7 @@ public final class BossUi { TextView titleView = new TextView(context); titleView.setText(title); - titleView.setTextSize(17); + titleView.setTextSize(16); titleView.setTypeface(Typeface.DEFAULT_BOLD); titleView.setTextColor(context.getColor(R.color.boss_text_primary)); textWrap.addView(titleView); @@ -417,7 +419,7 @@ public final class BossUi { if (!TextUtils.isEmpty(subtitle)) { TextView subtitleView = new TextView(context); subtitleView.setText(subtitle); - subtitleView.setTextSize(14); + subtitleView.setTextSize(13); subtitleView.setTextColor(context.getColor(R.color.boss_text_muted)); subtitleView.setPadding(0, dp(context, 4), 0, 0); textWrap.addView(subtitleView); @@ -454,19 +456,19 @@ public final class BossUi { ); params.bottomMargin = dp(context, 10); card.setLayoutParams(params); - card.setPadding(dp(context, 20), dp(context, 18), dp(context, 20), dp(context, 18)); + card.setPadding(dp(context, 16), dp(context, 14), dp(context, 16), dp(context, 14)); card.setBackgroundColor(Color.WHITE); card.setElevation(0f); TextView avatar = new TextView(context); - LinearLayout.LayoutParams avatarParams = new LinearLayout.LayoutParams(dp(context, 70), dp(context, 70)); + LinearLayout.LayoutParams avatarParams = new LinearLayout.LayoutParams(dp(context, 56), dp(context, 56)); avatar.setLayoutParams(avatarParams); avatar.setGravity(Gravity.CENTER); avatar.setText(firstLetter(name)); - avatar.setTextSize(30); + avatar.setTextSize(24); avatar.setTypeface(Typeface.DEFAULT_BOLD); avatar.setTextColor(context.getColor(R.color.boss_green)); - avatar.setBackground(createRoundedBackground(Color.parseColor("#DFF3E8"), dp(context, 35))); + avatar.setBackground(createRoundedBackground(Color.parseColor("#DFF3E8"), dp(context, 28))); card.addView(avatar); LinearLayout textWrap = new LinearLayout(context); @@ -481,14 +483,14 @@ public final class BossUi { TextView titleView = new TextView(context); titleView.setText(TextUtils.isEmpty(name) ? "我的" : name); - titleView.setTextSize(22); + titleView.setTextSize(20); titleView.setTypeface(Typeface.DEFAULT_BOLD); titleView.setTextColor(context.getColor(R.color.boss_text_primary)); textWrap.addView(titleView); TextView subtitleView = new TextView(context); subtitleView.setText(subtitle); - subtitleView.setTextSize(14); + subtitleView.setTextSize(13); subtitleView.setTextColor(context.getColor(R.color.boss_text_muted)); subtitleView.setPadding(0, dp(context, 5), 0, 0); textWrap.addView(subtitleView); @@ -567,7 +569,7 @@ public final class BossUi { params.rightMargin = dp(context, 12); params.bottomMargin = dp(context, 1); card.setLayoutParams(params); - card.setPadding(dp(context, 14), dp(context, 13), dp(context, 14), dp(context, 13)); + card.setPadding(dp(context, 12), dp(context, 10), dp(context, 12), dp(context, 10)); card.setBackgroundColor(Color.WHITE); card.setElevation(0f); if (listener != null) { @@ -580,15 +582,15 @@ public final class BossUi { } FrameLayout avatarWrap = new FrameLayout(context); - LinearLayout.LayoutParams avatarWrapParams = new LinearLayout.LayoutParams(dp(context, 56), dp(context, 56)); + LinearLayout.LayoutParams avatarWrapParams = new LinearLayout.LayoutParams(dp(context, 48), dp(context, 48)); avatarWrap.setLayoutParams(avatarWrapParams); TextView avatar = new TextView(context); - FrameLayout.LayoutParams avatarParams = new FrameLayout.LayoutParams(dp(context, 52), dp(context, 52)); + FrameLayout.LayoutParams avatarParams = new FrameLayout.LayoutParams(dp(context, 44), dp(context, 44)); avatar.setLayoutParams(avatarParams); avatar.setGravity(Gravity.CENTER); avatar.setText(firstLetter(firstNonEmpty(row.avatarLabel, row.title, "设"))); - avatar.setTextSize(22); + avatar.setTextSize(18); avatar.setTypeface(Typeface.DEFAULT_BOLD); avatar.setTextColor(resolveDeviceAccentColor(row.statusKey)); avatar.setBackground(createRoundedBackground(resolveDeviceAvatarBackground(row.statusKey), dp(context, 18))); @@ -615,7 +617,7 @@ public final class BossUi { TextView titleView = new TextView(context); titleView.setText(TextUtils.isEmpty(row.title) ? "设备" : row.title); - titleView.setTextSize(17); + titleView.setTextSize(16); titleView.setTypeface(Typeface.DEFAULT_BOLD); titleView.setTextColor(context.getColor(R.color.boss_text_primary)); titleView.setMaxLines(1); @@ -624,7 +626,7 @@ public final class BossUi { TextView subtitleView = new TextView(context); subtitleView.setText(row.subtitle); - subtitleView.setTextSize(13); + subtitleView.setTextSize(12); subtitleView.setTextColor(context.getColor(R.color.boss_text_muted)); subtitleView.setPadding(0, dp(context, 5), 0, 0); subtitleView.setMaxLines(2); @@ -633,7 +635,7 @@ public final class BossUi { TextView metaView = new TextView(context); metaView.setText(row.meta); - metaView.setTextSize(12); + metaView.setTextSize(11); metaView.setTextColor(resolveDeviceMetaColor(context, row.statusKey)); metaView.setPadding(0, dp(context, 6), 0, 0); metaView.setMaxLines(2); @@ -765,14 +767,14 @@ public final class BossUi { ) { LinearLayout card = new LinearLayout(context); card.setOrientation(LinearLayout.HORIZONTAL); - card.setGravity(Gravity.TOP); + card.setGravity(Gravity.CENTER_VERTICAL); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT ); params.bottomMargin = dp(context, 1); card.setLayoutParams(params); - card.setPadding(dp(context, 16), dp(context, 12), dp(context, 16), dp(context, 12)); + card.setPadding(dp(context, 14), dp(context, 8), dp(context, 14), dp(context, 8)); card.setBackgroundColor(highlighted ? Color.parseColor("#EAF8F0") : row.pinnedConversation ? PINNED_ROW_BG : Color.WHITE); card.setElevation(0f); if (listener != null) { @@ -793,37 +795,38 @@ public final class BossUi { LinearLayout.LayoutParams.WRAP_CONTENT, 1f ); - centerParams.leftMargin = dp(context, 12); - centerParams.rightMargin = dp(context, 10); + centerParams.leftMargin = dp(context, 10); + centerParams.rightMargin = dp(context, 8); centerColumn.setLayoutParams(centerParams); TextView titleView = new TextView(context); titleView.setText(TextUtils.isEmpty(row.threadTitle) ? "未命名会话" : row.threadTitle); - titleView.setTextSize(17); + titleView.setTextSize(15); + titleView.setIncludeFontPadding(false); + titleView.setGravity(Gravity.CENTER_VERTICAL); titleView.setTypeface(Typeface.DEFAULT_BOLD); titleView.setTextColor(context.getColor(R.color.boss_text_primary)); titleView.setMaxLines(1); titleView.setEllipsize(TextUtils.TruncateAt.END); + titleView.setLayoutParams(new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + dp(context, 22) + )); centerColumn.addView(titleView); - if (!TextUtils.isEmpty(row.folderLabel)) { - TextView folderView = new TextView(context); - folderView.setText(row.folderLabel); - folderView.setTextSize(13); - folderView.setTextColor(context.getColor(R.color.boss_text_muted)); - folderView.setPadding(0, dp(context, 4), 0, 0); - folderView.setMaxLines(1); - folderView.setEllipsize(TextUtils.TruncateAt.END); - centerColumn.addView(folderView); - } - TextView previewView = new TextView(context); - previewView.setText(TextUtils.isEmpty(row.lastMessagePreview) ? "暂无消息" : row.lastMessagePreview); - previewView.setTextSize(13); + previewView.setText(buildConversationPreviewText(row.folderLabel, row.lastMessagePreview)); + previewView.setTextSize(12); + previewView.setIncludeFontPadding(false); + previewView.setGravity(Gravity.CENTER_VERTICAL); previewView.setTextColor(context.getColor(R.color.boss_text_soft)); - previewView.setPadding(0, dp(context, 4), 0, 0); + previewView.setPadding(0, 0, 0, 0); previewView.setMaxLines(1); previewView.setEllipsize(TextUtils.TruncateAt.END); + previewView.setLayoutParams(new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + dp(context, 20) + )); centerColumn.addView(previewView); card.addView(centerColumn); @@ -836,38 +839,25 @@ public final class BossUi { LinearLayout.LayoutParams.WRAP_CONTENT )); - if (!row.pinnedConversation && !TextUtils.isEmpty(row.topPinnedLabel)) { - TextView pinnedView = new TextView(context); - pinnedView.setText(row.topPinnedLabel); - pinnedView.setTextSize(11); - pinnedView.setTypeface(Typeface.DEFAULT_BOLD); - pinnedView.setTextColor(context.getColor(R.color.boss_green)); - pinnedView.setBackground(createRoundedBackground(Color.parseColor("#E7F7EE"), dp(context, 9))); - pinnedView.setPadding(dp(context, 7), dp(context, 3), dp(context, 7), dp(context, 3)); - pinnedView.setLayoutParams(new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.WRAP_CONTENT, - LinearLayout.LayoutParams.WRAP_CONTENT - )); - trailingColumn.addView(pinnedView); - } - TextView timeView = new TextView(context); timeView.setText(TextUtils.isEmpty(row.timeLabel) ? "--:--" : row.timeLabel); - timeView.setTextSize(12); + timeView.setTextSize(10); + timeView.setIncludeFontPadding(false); timeView.setTextColor(context.getColor(R.color.boss_text_muted)); - timeView.setPadding(0, dp(context, TextUtils.isEmpty(row.topPinnedLabel) || row.pinnedConversation ? 2 : 8), 0, 0); + timeView.setPadding(0, 0, 0, 0); timeView.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT )); trailingColumn.addView(timeView); + List trailingStatusViews = new ArrayList<>(); + if (selectionMode) { View selector = buildConversationSelectionIndicator(context, selected); LinearLayout.LayoutParams selectorParams = new LinearLayout.LayoutParams(dp(context, 20), dp(context, 20)); - selectorParams.topMargin = dp(context, 8); selector.setLayoutParams(selectorParams); - trailingColumn.addView(selector); + trailingStatusViews.add(selector); } if (highlighted) { @@ -882,28 +872,30 @@ public final class BossUi { LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); - targetParams.topMargin = dp(context, 8); targetView.setLayoutParams(targetParams); - trailingColumn.addView(targetView); + trailingStatusViews.add(targetView); } if (row.unreadCount > 0) { TextView unreadView = new TextView(context); unreadView.setText(row.unreadCount > 99 ? "99+" : String.valueOf(row.unreadCount)); - unreadView.setTextSize(11); + unreadView.setTextSize(9); + unreadView.setIncludeFontPadding(false); unreadView.setTypeface(Typeface.DEFAULT_BOLD); unreadView.setTextColor(Color.WHITE); unreadView.setGravity(Gravity.CENTER); - unreadView.setMinWidth(dp(context, 20)); - unreadView.setBackground(createRoundedBackground(Color.parseColor("#FF5A5A"), dp(context, 10))); - unreadView.setPadding(dp(context, 6), dp(context, 2), dp(context, 6), dp(context, 2)); + unreadView.setMinWidth(dp(context, 16)); + unreadView.setMinimumWidth(dp(context, 16)); + unreadView.setMinHeight(dp(context, 16)); + unreadView.setMinimumHeight(dp(context, 16)); + unreadView.setBackground(createRoundedBackground(Color.parseColor("#FF5A5A"), dp(context, 8))); + unreadView.setPadding(dp(context, 4), 0, dp(context, 4), 0); LinearLayout.LayoutParams unreadParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, - LinearLayout.LayoutParams.WRAP_CONTENT + dp(context, 16) ); - unreadParams.topMargin = dp(context, 8); unreadView.setLayoutParams(unreadParams); - trailingColumn.addView(unreadView); + trailingStatusViews.add(unreadView); } int activityCount = Math.max(0, Math.min(row.activityIconCount, WechatSurfaceMapper.maxConversationActivityIcons())); @@ -915,7 +907,6 @@ public final class BossUi { LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); - activityParams.topMargin = dp(context, 8); activityWrap.setLayoutParams(activityParams); for (int i = 0; i < activityCount; i++) { View dot = buildAnimatedActivityDot(context, i); @@ -926,13 +917,12 @@ public final class BossUi { } activityWrap.addView(dot); } - trailingColumn.addView(activityWrap); + trailingStatusViews.add(activityWrap); } if (row.contextIndicatorVisible) { FrameLayout ringWrap = new FrameLayout(context); LinearLayout.LayoutParams ringWrapParams = new LinearLayout.LayoutParams(dp(context, 24), dp(context, 24)); - ringWrapParams.topMargin = dp(context, 6); ringWrap.setLayoutParams(ringWrapParams); ringWrap.setBackground(createRoundedBackground(CONTEXT_RING_BG, dp(context, 12))); ringWrap.setContentDescription(TextUtils.isEmpty(row.contextStatusLabel) @@ -948,13 +938,90 @@ public final class BossUi { FrameLayout.LayoutParams ringParams = new FrameLayout.LayoutParams(dp(context, 16), dp(context, 16), Gravity.CENTER); ring.setLayoutParams(ringParams); ringWrap.addView(ring); - trailingColumn.addView(ringWrap); + trailingStatusViews.add(ringWrap); } + addCompactTrailingStatuses(context, trailingColumn, trailingStatusViews); + card.addView(trailingColumn); return card; } + private static void addCompactTrailingStatuses(Context context, LinearLayout trailingColumn, List statusViews) { + if (statusViews.isEmpty()) { + return; + } + if (statusViews.size() == 1) { + View statusView = statusViews.get(0); + LinearLayout.LayoutParams params = ensureLinearLayoutParams(statusView); + params.topMargin = dp(context, 2); + statusView.setLayoutParams(params); + trailingColumn.addView(statusView); + return; + } + + LinearLayout statusRow = new LinearLayout(context); + statusRow.setOrientation(LinearLayout.HORIZONTAL); + statusRow.setGravity(Gravity.END | Gravity.CENTER_VERTICAL); + int rowHeight = containsFrameStatus(statusViews) ? 24 : 18; + LinearLayout.LayoutParams rowParams = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.WRAP_CONTENT, + dp(context, rowHeight) + ); + rowParams.topMargin = dp(context, 2); + statusRow.setLayoutParams(rowParams); + for (int index = 0; index < statusViews.size(); index += 1) { + View statusView = statusViews.get(index); + LinearLayout.LayoutParams childParams = ensureLinearLayoutParams(statusView); + childParams.topMargin = 0; + childParams.leftMargin = index == 0 ? 0 : dp(context, 4); + statusView.setLayoutParams(childParams); + statusRow.addView(statusView); + } + trailingColumn.addView(statusRow); + } + + private static boolean containsFrameStatus(List statusViews) { + for (View statusView : statusViews) { + if (statusView instanceof FrameLayout) { + return true; + } + } + return false; + } + + private static LinearLayout.LayoutParams ensureLinearLayoutParams(View view) { + ViewGroup.LayoutParams current = view.getLayoutParams(); + if (current instanceof LinearLayout.LayoutParams) { + return (LinearLayout.LayoutParams) current; + } + if (current != null) { + return new LinearLayout.LayoutParams(current.width, current.height); + } + return new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.WRAP_CONTENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ); + } + + private static String buildConversationPreviewText(@Nullable String folderLabel, @Nullable String preview) { + String normalizedFolder = folderLabel == null ? "" : folderLabel.trim(); + String normalizedPreview = preview == null ? "" : preview.trim(); + if (!TextUtils.isEmpty(normalizedFolder) && !TextUtils.isEmpty(normalizedPreview)) { + if (normalizedFolder.contains(normalizedPreview)) { + return normalizedFolder; + } + return normalizedFolder + " · " + normalizedPreview; + } + if (!TextUtils.isEmpty(normalizedFolder)) { + return normalizedFolder; + } + if (!TextUtils.isEmpty(normalizedPreview)) { + return normalizedPreview; + } + return "暂无消息"; + } + private static View buildConversationSelectionIndicator(Context context, boolean selected) { View indicator = new View(context); GradientDrawable drawable = new GradientDrawable(); @@ -2493,29 +2560,29 @@ public final class BossUi { firstNonEmpty(row.avatarPrimary, row.threadTitle, "会"), AVATAR_BG_COLORS[0], Color.WHITE, - 52 + 44 ); } FrameLayout groupWrap = new FrameLayout(context); - LinearLayout.LayoutParams wrapParams = new LinearLayout.LayoutParams(dp(context, 52), dp(context, 52)); + LinearLayout.LayoutParams wrapParams = new LinearLayout.LayoutParams(dp(context, 44), dp(context, 44)); groupWrap.setLayoutParams(wrapParams); - GradientDrawable bg = createRoundedBackground(Color.parseColor("#F2F6F3"), dp(context, 18)); + GradientDrawable bg = createRoundedBackground(Color.parseColor("#F2F6F3"), dp(context, 15)); bg.setStroke(dp(context, 1), Color.parseColor("#E5ECE7")); groupWrap.setBackground(bg); int visibleCount = Math.min(row.groupAvatarMembers.length, 4); if (visibleCount == 0) { - groupWrap.addView(buildCenteredAvatarTile(context, "群", AVATAR_BG_COLORS[1], 32, 10, 10)); + groupWrap.addView(buildCenteredAvatarTile(context, "群", AVATAR_BG_COLORS[1], 28, 8, 8)); return groupWrap; } int[][] offsets = { {4, 4}, - {24, 4}, - {4, 24}, - {24, 24} + {22, 4}, + {4, 22}, + {22, 22} }; for (int i = 0; i < visibleCount; i++) { WechatSurfaceMapper.GroupAvatarMember member = row.groupAvatarMembers[i]; @@ -2523,7 +2590,7 @@ public final class BossUi { context, firstNonEmpty(member.avatarLabel, member.title, "群"), AVATAR_BG_COLORS[(i + 1) % AVATAR_BG_COLORS.length], - 22, + 18, offsets[i][0], offsets[i][1] )); @@ -2543,7 +2610,7 @@ public final class BossUi { avatarView.setLayoutParams(avatarParams); avatarView.setGravity(Gravity.CENTER); avatarView.setText(firstLetter(labelSource)); - avatarView.setTextSize(sizeDp >= 48 ? 24 : 12); + avatarView.setTextSize(sizeDp >= 44 ? 18 : 10); avatarView.setTypeface(Typeface.DEFAULT_BOLD); avatarView.setTextColor(textColor); avatarView.setBackground(createRoundedBackground(backgroundColor, dp(context, sizeDp / 2))); diff --git a/android/app/src/main/java/com/hyzq/boss/MainActivity.java b/android/app/src/main/java/com/hyzq/boss/MainActivity.java index bac1119..aa9dc05 100644 --- a/android/app/src/main/java/com/hyzq/boss/MainActivity.java +++ b/android/app/src/main/java/com/hyzq/boss/MainActivity.java @@ -6,6 +6,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Color; +import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -1238,13 +1239,18 @@ public class MainActivity extends AppCompatActivity { int color = getColor(active ? R.color.boss_green : R.color.boss_text_muted); button.setBackgroundColor(Color.TRANSPARENT); button.setTextColor(color); - button.setTextSize(12); + button.setTextSize(11); button.setAllCaps(false); button.setGravity(android.view.Gravity.CENTER); - button.setCompoundDrawablesWithIntrinsicBounds(0, iconRes, 0, 0); - button.setCompoundDrawablePadding(BossUi.dp(this, 3)); + Drawable topIcon = getDrawable(iconRes); + if (topIcon != null) { + int iconSize = BossUi.dp(this, 20); + topIcon.setBounds(0, 0, iconSize, iconSize); + } + button.setCompoundDrawables(null, topIcon, null, null); + button.setCompoundDrawablePadding(BossUi.dp(this, 2)); button.setCompoundDrawableTintList(ColorStateList.valueOf(color)); - button.setPadding(0, BossUi.dp(this, 5), 0, BossUi.dp(this, 3)); + button.setPadding(0, BossUi.dp(this, 4), 0, BossUi.dp(this, 2)); } private void configureTopAction(WechatSurfaceMapper.RootTopAction action) { diff --git a/android/app/src/main/res/layout/activity_conversation_info.xml b/android/app/src/main/res/layout/activity_conversation_info.xml index 5f84aef..37b8450 100644 --- a/android/app/src/main/res/layout/activity_conversation_info.xml +++ b/android/app/src/main/res/layout/activity_conversation_info.xml @@ -12,18 +12,18 @@ android:background="@color/boss_surface" android:gravity="center_vertical" android:orientation="horizontal" - android:paddingLeft="20dp" - android:paddingTop="14dp" - android:paddingRight="20dp" - android:paddingBottom="12dp"> + android:paddingLeft="18dp" + android:paddingTop="10dp" + android:paddingRight="18dp" + android:paddingBottom="8dp"> @@ -41,7 +41,7 @@ android:layout_height="wrap_content" android:text="会话信息" android:textColor="@color/boss_text_primary" - android:textSize="22sp" + android:textSize="20sp" android:textStyle="bold" /> diff --git a/android/app/src/main/res/layout/activity_forward_target.xml b/android/app/src/main/res/layout/activity_forward_target.xml index e60627a..29ce0bb 100644 --- a/android/app/src/main/res/layout/activity_forward_target.xml +++ b/android/app/src/main/res/layout/activity_forward_target.xml @@ -12,18 +12,18 @@ android:background="@color/boss_surface" android:gravity="center_vertical" android:orientation="horizontal" - android:paddingLeft="20dp" - android:paddingTop="14dp" - android:paddingRight="20dp" - android:paddingBottom="12dp"> + android:paddingLeft="18dp" + android:paddingTop="10dp" + android:paddingRight="18dp" + android:paddingBottom="8dp"> @@ -41,7 +41,7 @@ android:layout_height="wrap_content" android:text="标题" android:textColor="@color/boss_text_primary" - android:textSize="22sp" + android:textSize="20sp" android:textStyle="bold" /> diff --git a/android/app/src/main/res/layout/activity_group_create.xml b/android/app/src/main/res/layout/activity_group_create.xml index 95d6378..7c10494 100644 --- a/android/app/src/main/res/layout/activity_group_create.xml +++ b/android/app/src/main/res/layout/activity_group_create.xml @@ -12,18 +12,18 @@ android:background="@color/boss_surface" android:gravity="center_vertical" android:orientation="horizontal" - android:paddingLeft="20dp" - android:paddingTop="14dp" - android:paddingRight="20dp" - android:paddingBottom="12dp"> + android:paddingLeft="18dp" + android:paddingTop="10dp" + android:paddingRight="18dp" + android:paddingBottom="8dp"> @@ -41,7 +41,7 @@ android:layout_height="wrap_content" android:text="发起群聊" android:textColor="@color/boss_text_primary" - android:textSize="22sp" + android:textSize="20sp" android:textStyle="bold" /> diff --git a/android/app/src/main/res/layout/activity_group_info.xml b/android/app/src/main/res/layout/activity_group_info.xml index 1c650bc..1c0553c 100644 --- a/android/app/src/main/res/layout/activity_group_info.xml +++ b/android/app/src/main/res/layout/activity_group_info.xml @@ -12,18 +12,18 @@ android:background="@color/boss_surface" android:gravity="center_vertical" android:orientation="horizontal" - android:paddingLeft="20dp" - android:paddingTop="14dp" - android:paddingRight="20dp" - android:paddingBottom="12dp"> + android:paddingLeft="18dp" + android:paddingTop="10dp" + android:paddingRight="18dp" + android:paddingBottom="8dp"> @@ -41,7 +41,7 @@ android:layout_height="wrap_content" android:text="群资料" android:textColor="@color/boss_text_primary" - android:textSize="22sp" + android:textSize="20sp" android:textStyle="bold" /> diff --git a/android/app/src/main/res/layout/activity_main.xml b/android/app/src/main/res/layout/activity_main.xml index aab098b..dba0141 100644 --- a/android/app/src/main/res/layout/activity_main.xml +++ b/android/app/src/main/res/layout/activity_main.xml @@ -214,19 +214,19 @@ android:background="@color/boss_surface" android:gravity="center_vertical" android:orientation="horizontal" - android:paddingLeft="20dp" - android:paddingTop="14dp" - android:paddingRight="20dp" - android:paddingBottom="12dp"> + android:paddingLeft="18dp" + android:paddingTop="10dp" + android:paddingRight="18dp" + android:paddingBottom="8dp"> @@ -246,7 +246,7 @@ android:maxLines="1" android:text="会话" android:textColor="@color/boss_text_primary" - android:textSize="22sp" + android:textSize="20sp" android:textStyle="bold" /> @@ -313,13 +313,13 @@ @@ -332,7 +332,7 @@ android:text="会话" android:textAllCaps="false" android:textColor="@color/boss_green" - android:textSize="12sp" + android:textSize="11sp" android:textStyle="bold" />