diff --git a/.claude/settings.local.json b/.claude/settings.local.json index f4ea7cd..d0b94e3 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -30,7 +30,8 @@ "Bash(dir:*)", "Bash(copy:*)", "Bash(.gradlew:*)", - "Bash(gradlew.bat assembleDebug:*)" + "Bash(gradlew.bat assembleDebug:*)", + "Bash(mv:*)" ], "deny": [], "ask": [] diff --git a/app/src/main/java/com/chick_mood/ui/adapter/MoodCardAdapter.kt b/app/src/main/java/com/chick_mood/ui/adapter/MoodCardAdapter.kt index 0ed3254..50e7500 100644 --- a/app/src/main/java/com/chick_mood/ui/adapter/MoodCardAdapter.kt +++ b/app/src/main/java/com/chick_mood/ui/adapter/MoodCardAdapter.kt @@ -6,9 +6,12 @@ import android.view.ViewGroup import android.widget.ImageView import android.widget.LinearLayout import androidx.recyclerview.widget.RecyclerView +import android.util.Log import com.chick_mood.data.model.MoodRecord import com.chick_mood.utils.MoodDescriptionGenerator +import com.chick_mood.utils.FontUtils import com.daodaoshi.chick_mood.databinding.ItemMoodCardBinding +import com.daodaoshi.chick_mood.ImageUtils /** * 心情卡片适配器 @@ -60,40 +63,34 @@ class MoodCardAdapter( ) binding.tvMoodDescription.text = moodDescription + // 应用阿里妈妈数黑体字体到心情文案 + FontUtils.applyAlimamaShuHeiBold(binding.tvMoodDescription, binding.root.context) + // 设置收藏状态 updateFavoriteIcon(record.isFavorite) - // 处理文本和图片内容的显示逻辑 + // 处理文本和图片内容的显示逻辑 - 使用固定布局:左侧100x100dp配图 + 右侧自适应文本 val hasText = !record.textContent.isNullOrEmpty() val hasImage = !record.imagePath.isNullOrEmpty() if (hasText && hasImage) { - // 有图有文:图片在左,文本在右 + // 有图有文:图片在左(100x100dp),文本在右(自适应) binding.ivImage.visibility = View.VISIBLE binding.tvTextContent.visibility = View.VISIBLE - binding.llMainContent.orientation = LinearLayout.HORIZONTAL - binding.ivImage.layoutParams = LinearLayout.LayoutParams(80, 80).apply { - marginEnd = 12 - } binding.tvTextContent.text = record.textContent - // TODO: 加载真实图片 - binding.ivImage.setImageResource(com.daodaoshi.chick_mood.R.drawable.placeholder_background) + // 加载真实图片 + Log.d("MoodCardAdapter", "Loading image path: ${record.imagePath}") + ImageUtils.loadImage(binding.ivImage, record.imagePath) } else if (hasImage && !hasText) { - // 有图无文:图片居中显示 + // 有图无文:图片在左(100x100dp),右侧空白 binding.ivImage.visibility = View.VISIBLE binding.tvTextContent.visibility = View.GONE - binding.llMainContent.orientation = LinearLayout.VERTICAL - binding.llMainContent.gravity = android.view.Gravity.CENTER - binding.ivImage.layoutParams = LinearLayout.LayoutParams(120, 120).apply { - marginEnd = 0 - } - // TODO: 加载真实图片 - binding.ivImage.setImageResource(com.daodaoshi.chick_mood.R.drawable.placeholder_background) + // 加载真实图片 + ImageUtils.loadImage(binding.ivImage, record.imagePath) } else if (hasText && !hasImage) { - // 无图有文:文本占满整个内容区域 + // 无图有文:左侧空白,文本在右(占满右侧) binding.ivImage.visibility = View.GONE binding.tvTextContent.visibility = View.VISIBLE - binding.llMainContent.orientation = LinearLayout.VERTICAL binding.tvTextContent.text = record.textContent } else { // 无图无文:隐藏内容区域 diff --git a/app/src/main/java/com/daodaoshi/chick_mood/DetailActivity.kt b/app/src/main/java/com/daodaoshi/chick_mood/DetailActivity.kt index 92b91fb..38921cc 100644 --- a/app/src/main/java/com/daodaoshi/chick_mood/DetailActivity.kt +++ b/app/src/main/java/com/daodaoshi/chick_mood/DetailActivity.kt @@ -14,6 +14,7 @@ import androidx.appcompat.app.AppCompatActivity import com.chick_mood.data.database.SimpleDatabaseManager import com.chick_mood.data.model.Emotion import com.chick_mood.data.model.MoodRecord +import com.chick_mood.utils.FontUtils import com.chick_mood.utils.EmotionResourceManager import com.daodaoshi.chick_mood.ImageUtils import kotlinx.coroutines.CoroutineScope @@ -97,6 +98,9 @@ class DetailActivity : AppCompatActivity() { moodValueText.text = record.moodIntensity.toString() moodText.text = generateMoodText(record.moodIntensity, record.emotion) + // 应用阿里妈妈数黑体字体到心情文案 + FontUtils.applyAlimamaShuHeiBold(moodText, this) + // 设置图片内容(如果有) if (record.imagePath != null) { imageContent.visibility = View.VISIBLE diff --git a/app/src/main/java/com/daodaoshi/chick_mood/EditActivity.kt b/app/src/main/java/com/daodaoshi/chick_mood/EditActivity.kt index a16fdeb..f73d392 100644 --- a/app/src/main/java/com/daodaoshi/chick_mood/EditActivity.kt +++ b/app/src/main/java/com/daodaoshi/chick_mood/EditActivity.kt @@ -16,6 +16,7 @@ import androidx.appcompat.app.AppCompatActivity import com.chick_mood.data.database.SimpleDatabaseManager import com.chick_mood.data.model.Emotion import com.chick_mood.data.model.MoodRecord +import com.chick_mood.utils.FontUtils import com.chick_mood.utils.EmotionResourceManager import com.daodaoshi.chick_mood.ImageUtils import kotlinx.coroutines.CoroutineScope @@ -258,6 +259,9 @@ class EditActivity : AppCompatActivity() { moodValueText.text = record.moodIntensity.toString() moodText.text = generateMoodText(record.moodIntensity, record.emotion) + // 应用阿里妈妈数黑体字体到心情文案 + FontUtils.applyAlimamaShuHeiBold(moodText, this) + // 设置文本内容 textInput.setText(record.textContent ?: "") updateCharCount() diff --git a/app/src/main/java/com/daodaoshi/chick_mood/ImageUtils.kt b/app/src/main/java/com/daodaoshi/chick_mood/ImageUtils.kt index b8a2fda..d19e1f0 100644 --- a/app/src/main/java/com/daodaoshi/chick_mood/ImageUtils.kt +++ b/app/src/main/java/com/daodaoshi/chick_mood/ImageUtils.kt @@ -6,6 +6,7 @@ import android.graphics.BitmapFactory import android.net.Uri import android.provider.MediaStore import android.util.Log +import android.widget.ImageView import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.io.File @@ -66,6 +67,34 @@ object ImageUtils { } } + /** + * 从文件路径加载图片到ImageView(简化版本) + */ + fun loadImage(imageView: ImageView, imagePath: String?) { + if (!imagePath.isNullOrEmpty()) { + imageView.setImageResource(com.daodaoshi.chick_mood.R.drawable.placeholder_background) + return + } + + try { + val file = File(imagePath) + if (file.exists()) { + val bitmap = BitmapFactory.decodeFile(file.absolutePath) + if (bitmap != null) { + imageView.setImageBitmap(bitmap) + } else { + imageView.setImageResource(com.daodaoshi.chick_mood.R.drawable.placeholder_background) + } + } else { + Log.w(TAG, "图片文件不存在: $imagePath") + imageView.setImageResource(com.daodaoshi.chick_mood.R.drawable.placeholder_background) + } + } catch (e: Exception) { + Log.e(TAG, "加载图片失败", e) + imageView.setImageResource(com.daodaoshi.chick_mood.R.drawable.placeholder_background) + } + } + /** * 从文件路径加载Bitmap */ diff --git a/app/src/main/java/com/daodaoshi/chick_mood/MainActivitySimple.kt b/app/src/main/java/com/daodaoshi/chick_mood/MainActivitySimple.kt index b7bd96f..bd7e69c 100644 --- a/app/src/main/java/com/daodaoshi/chick_mood/MainActivitySimple.kt +++ b/app/src/main/java/com/daodaoshi/chick_mood/MainActivitySimple.kt @@ -23,6 +23,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import com.chick_mood.utils.MoodDescriptionGenerator +import com.chick_mood.utils.FontUtils /** * 简化的首页Activity - 主要用于展示历史心情记录和创建新记录的入口 @@ -243,6 +244,9 @@ class MainActivitySimple : AppCompatActivity() { binding.tvWeekday.text = weekdayText binding.tvTime.text = time + + // 应用阿里妈妈数黑体字体 + FontUtils.applyAlimamaShuHeiBold(binding.tvWeekday, this) } } diff --git a/app/src/main/res/drawable/ic_launcher_chick_foreground.png b/app/src/main/res/drawable/ic_launcher_chick_foreground.png index 3698e23..de2d5f3 100644 Binary files a/app/src/main/res/drawable/ic_launcher_chick_foreground.png and b/app/src/main/res/drawable/ic_launcher_chick_foreground.png differ diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml index 7f27ab6..f7660d3 100644 --- a/app/src/main/res/layout/activity_detail.xml +++ b/app/src/main/res/layout/activity_detail.xml @@ -91,7 +91,6 @@ android:id="@+id/mood_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="完全无法控制 开心" android:textSize="18sp" android:textColor="@color/text_secondary" /> diff --git a/app/src/main/res/layout/activity_edit.xml b/app/src/main/res/layout/activity_edit.xml index 945258c..bd55f19 100644 --- a/app/src/main/res/layout/activity_edit.xml +++ b/app/src/main/res/layout/activity_edit.xml @@ -89,7 +89,6 @@ android:id="@+id/mood_text" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="完全无法控制 开心" android:textSize="18sp" android:textColor="@color/text_secondary" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1a2de02..9db8993 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -164,6 +164,8 @@ android:layout_marginBottom="24dp" android:elevation="4dp" android:stateListAnimator="@null" + android:drawableStart="@drawable/ic_add_mood" + android:drawablePadding="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/item_mood_card.xml b/app/src/main/res/layout/item_mood_card.xml index 6f42b6c..a831d6e 100644 --- a/app/src/main/res/layout/item_mood_card.xml +++ b/app/src/main/res/layout/item_mood_card.xml @@ -4,77 +4,82 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - app:cardCornerRadius="12dp" - app:cardElevation="2dp" - app:cardBackgroundColor="@color/white"> + android:layout_margin="4dp" + app:cardCornerRadius="16dp" + app:cardElevation="3dp" + app:cardBackgroundColor="@color/white" + android:foreground="@drawable/card_selector"> + android:layout_height="wrap_content" + android:padding="20dp"> - + + tools:text="有些 开心" /> - - + - + - + + android:background="@drawable/shape_image_background" + android:contentDescription="心情配图" /> - + - +