你的背叛,让我自己也背叛了自己:伤感日志

本文通过一系列情感丰富的章节,探讨了背叛带来的自我反思与内心挣扎,从不同角度描绘了个体在面对背叛时的复杂心理活动,以及对自我价值与人际关系的重新审视。
你的背叛,让我自己也背叛了自己:伤感日志

— 你的背叛,让我自己也背叛了自己:伤感日志

   chapter 1
  我不羡慕大雄的小叮当有异次元口袋,
  我不羡慕夏尔的塞巴斯是万能的。
  我不羡慕小樱身边的小可拥有魔法。


  chapter 2
  我最喜欢的一句话,
  衣不如新 人不如故。
  是新人不如故人,
  还是故人已非故时人。

 

  chapter 3
  我自是年少, 韶华倾负,
  它的意思是。
  我虽然年纪小, 但我可以付出我的全部。
  我想, 是不是也有一个人能让我韶华倾负。


  chapter 4
  《洛丽塔》里唱的,
  喜欢一个人 只喜欢一天 好吗。
  如果洛丽塔指的是我们这个年华,
  我们是否可以做到放得下。

 

  chapter 5
  我怀念的是无话可说,
  我要我们度过了无话不说的阶段之后还能在一起。
  无话可说, 却连沉默都值得回忆,
  我愿我们无话可说。
  chapter 6
  老和尚说 ,知道痛了 ,也就知道放手了,
  可是 我怕等我放手时 一切都晚了。

 

  chapter 7
  原来我非不快乐,
  其实我非不忧伤。


  chapter 8
  以前看《直到最后一句》 觉得人性黑暗到平易近人,
  可是翻到卢丽莉的专栏时 看到她说。
  直到最后一句, 已然无关风月,
  突然的就觉得, 我还是愿意相信这世上的一切。


  chapter 9
  看小说时 见到最多的一句话,
  有心相见 无力相逢。
  没错, 人岂能与天与命相抗争,
  只是向来缘浅, 又怎能奈何情深。


  chapter 10
  我爱你, 所以凡事是我容忍,
  我爱你, 所以过错是我背负。
  就像歌里唱的,
  一定是我不够好, 所以你才想要逃。
  嗯 ,一定是我不够好。

 

  chapter 11
  看到一段对话,
  有人问 ,你明知道跟它在一起总有一天要分开的, 为什么你还是要跟它在一起。
  它回答, 每个人都知道自己总有一天会死去,
  这不是海誓山盟 ,亦不是甜言蜜语。
  可是这就是爱情。


  chapter 12
  我没有谈过远距离的恋爱, 所以不知道一根电话线可以连接起多少情绪。
  可是当我生命里的你们都离散到天涯的时候,
  接到电话的那一刻。
  击中心脏的那一刻,
  突然就觉得, 没有什么比这更暖心。
   
  
 
  chapter 13
  我以前一直以为, 最怕的不是不爱, 而是爱而不得,
  现在明白 最怕的 莫过于 得而不爱。

 

  chapter 14
  有一个故事 说,
  从前有一只兔子, 后来又来了一只兔子, 然后她爬到他的肩膀上, 然后又来了一只兔子, 她又爬到他的肩膀上。
  最后一共有13只兔子叠在一起, 最上面的就是那只一直往上爬的兔子, 最后她吻了一下长颈鹿。
  这个故事 究竟是想讲爱情需要牺牲, 还是爱情可以利用
  我至今没看懂。


  chapter 15
  一直以来, 勇士打败凶恶的巨龙, 带走它守护的财宝, 是天经地义的事,
  可是, 如果那些珠宝会说话。
  它是不是愿意一直陪着巨龙 一生一世一辈子。

  chapter 16
  你曾对我说, 如果全世界背叛了我, 你也会站在我身后, 背叛全世界。
  全世界还未来得及背叛我, 你便已经离去。
  你的背叛, 让我自己也背叛了自己。
   
 
  chapter 17
  我想 ,真的不会有人能陪我到世界的终结。
  那些在我生命中路过的 ,驻足的, 小憩的。
  它们只是来教会我爱与恨,
  或许它们还在 或许它们已走远。
  希望它们幸福。

  chapter 18
  以前我一直以为, 物是人非 是世上最令人悲伤的词语
  其实我更怕曲终人散,
  我不怕你忘记了以前, 我怕你不会再出现。

 

  chapter 19
  独木舟写过许多煽情的句子, 我却只记得她笔下的康婕说过,
  曾经是朋友 就永远是朋友, 你可以否认我这个人 ,但是你别否认我们之间的友情。

  朋友, 我当你一世朋友,
  所以, 无论我以后做错什么 你都不要否认我们的友情。QQ空间伤感日志
  chapter 20
  以前总不知道, 为什么忘记一个人需要七年,现在才得知, 人的细胞是以七年为一个周期全部更换的。
  还好还好, 我还有七年时间忘记你。
  只是希望 ,七年之后 再不相逢。
   
 
  chapter 21
  是谁说, 战争没有胜利者。
  那它是否也会说 爱情 同样没有胜利者。
  并不是谁先爱了 谁就输了,
  应该是谁先放了 谁就赢了。


  chapter 22
  《圣经》 雅歌,
  第三章 第五条,
  耶稣说, 不要叫醒我所亲爱的, 等它自己情愿,
  亲爱, 我等你自己情愿。

你的背叛,让我自己也背叛了自己:伤感日志

相关的主题文章:

解析到 21 行歌词 2025-12-04 18:16:58.492 31580-31580 LrcDebug com.weishitech.qichechangtingyinyue D [00:01.00]歌曲名 背叛 [00:02.00]歌手名 曹格 [00:03.00]作词:阿丹/邬裕康 [00:04.00]作曲:曹格 [00:14.06]雨 [00:16.01]不停落下来 [00:21.30]花 [00:23.09]怎么都不开 [00:27.82]尽管我细心灌溉 [00:31.46]你说不爱就不爱 [00:35.12]我一个人 [00:39.11]欣赏悲哀 [00:43.10]爱 [00:45.15]只剩下无奈 [00:50.43]我 [00:52.18]一直不愿再去猜 [00:56.97]钢琴上黑键之间 [01:00.51]永远都夹着空白 [01:04.25]缺了一块 [01:08.14]就不精彩 [01:12.33]紧紧相依的心如何 [01:16.03]Say goodbye [01:19.47]你比我清楚还要我说明白 [01:25.90]爱太深会让人疯狂的勇敢 [01:33.79]我用背叛自己 [01:37.33]完成你的期盼 [01:41.07]把手放开不问一句 [01:44.61]Say goodbye [01:48.05]当作最后一次对你的溺爱 [01:54.49]冷冷清清淡淡今后都不管 [02:02.32]只要你能愉快 [02:18.61]心 [02:20.15]有一句感慨 [02:25.74]我 [02:27.54]还能够跟谁对白 [02:32.62]在你关上门之前 [02:35.72]替我再回头看看 [02:39.61]那些片段 [02:43.30]还在不在 [02:47.29]紧紧相依的心如何 [02:50.88]Say goodbye [02:54.47]你比我清楚还要我说明白 [03:00.76]爱太深会让人疯狂的勇敢 [03:08.44]我用背叛自己 [03:12.28]完成你的期盼 [03:15.98]把手放开不问一句 [03:19.47]Say goodbye [03:23.11]当作最后一次对你的溺爱 [03:29.44]冷冷清清淡淡今后都不管 [03:37.18]只要你能愉快 [04:02.51]紧紧相依的心如何 [04:06.35]Say goodbye [04:09.70]你比我清楚还要我说明白 [04:16.03]爱太深会让人疯狂的勇敢 [04:23.57]我用背叛自己 [04:27.31]完成你的期盼 [04:31.45]把手放开不问一句 [04:34.79]Say goodbye [04:38.38]当作最后一次对你的溺爱 [04:44.62]冷冷清清淡淡今后都不管 [04:52.75]只要你能愉快 [05:03.03]只要你能愉快 package com.weishitech.qichechangtingyinyue.fragment.Adapter; import android.content.Context; import android.graphics.Color; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.hfd.common.util.DensityUtil; import com.hw.lrcviewlib.LrcDataBuilder; import com.hw.lrcviewlib.LrcRow; import com.hw.lrcviewlib.LrcView; import com.weishitech.qichechangtingyinyue.R; import com.weishitech.qichechangtingyinyue.bean.MusicBean; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; // SongPagerAdapter.java public class SongPagerAdapter extends RecyclerView.Adapter<SongPagerAdapter.SongViewHolder> { List<LrcRow> lrcRows; private final List<MusicBean.DataBean> data; private final Context context; private int currentPosition = 0; // 播放回调接口 public interface OnPageSelectedListener { void onPageSelected(int position, MusicBean.DataBean song); } private OnPageSelectedListener listener; public void setOnPageSelectedListener(OnPageSelectedListener l) { this.listener = l; } public SongPagerAdapter(Context context, List<MusicBean.DataBean> data) { this.context = context; this.data = new ArrayList<>(data); } @NonNull @Override public SongViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.fragment_song_item, parent, false); return new SongViewHolder(view); } @Override public void onBindViewHolder(@NonNull SongViewHolder holder, int position) { MusicBean.DataBean song = data.get(position); holder.tvTitle.setText(song.getTitle()); holder.tvSinger.setText(song.getSinger()); Glide.with(context) .load(song.getCover()) .into(holder.ivCover); String lrcText = song.getLrc(); Log.d("LrcDebug", ""+lrcText); lrcRows = new LrcDataBuilder().builtFromText(lrcText); Log.d("LrcDebug", "解析到 " + (lrcRows != null ? lrcRows.size() : "null") + " 行歌词"); holder.lyricView.getLrcSetting() .setTimeTextSize(40)//时间字体大小 .setSelectLineColor(Color.parseColor("#FFFFFF"))//选中线颜色 .setSelectLineTextSize(25)//选中线大小 .setNormalRowColor(Color.parseColor("#919191")) .setHeightRowColor(Color.parseColor("#FFFFFF"))//高亮字体颜色 .setNormalRowTextSize(DensityUtil.sp2px(context, 17))//正常行字体大小 .setHeightLightRowTextSize(DensityUtil.sp2px(context, 17))//高亮行字体大小 .setTrySelectRowTextSize(DensityUtil.sp2px(context, 17))//尝试选中行字体大小 .setTimeTextColor(Color.parseColor("#FFFFFF"))//时间字体颜色 .setTrySelectRowColor(Color.parseColor("#FFFFFF"));//尝试选中字体颜色 holder.lyricView.commitLrcSettings(); holder.lyricView.setLrcData(lrcRows); // 标记当前绑定位置 holder.itemView.setTag(position); } @Override public int getItemCount() { return data.size(); } static class SongViewHolder extends RecyclerView.ViewHolder { ImageView ivCover; TextView tvTitle, tvSinger; LrcView lyricView; public SongViewHolder(@NonNull View itemView) { super(itemView); ivCover = itemView.findViewById(R.id.iv_cover); tvTitle = itemView.findViewById(R.id.tv_title); tvSinger = itemView.findViewById(R.id.tv_singer); lyricView = itemView.findViewById(R.id.lyricView); } } public MusicBean.DataBean getCurrentSong(int position) { if (position >= 0 && position < data.size()) { return data.get(position); } return null; } public class LrcDataBuilder { public List<LrcRow> builtFromText(String lrcText) { List<LrcRow> rows = new ArrayList<>(); if (lrcText == null || lrcText.trim().isEmpty()) { return rows; } String[] lines = lrcText.split("\\r?\\n"); for (String line : lines) { List<LrcRow> parsed = parseLrcLine(line.trim()); if (!parsed.isEmpty()) { rows.addAll(parsed); } } Collections.sort(rows); // 按时间排序 return rows; } private List<LrcRow> parseLrcLine(String line) { List<LrcRow> result = new ArrayList<>(); // 匹配所有 [mm:ss.xxx] 类型的时间标签 Pattern pattern = Pattern.compile("\\[(\\d{1,3}):(\\d{2})(?:\\.(\\d{2,3}))?\\]"); Matcher matcher = pattern.matcher(line); if (!matcher.find()) { // 没有时间标签,视为无效行或元数据(如 [ti:歌名]),可跳过 return result; } // 回退 matcher 到开头重新遍历 matcher.reset(); while (matcher.find()) { String originalTimeTag = matcher.group(0); // 完整标签 "[mm:ss.xx]" int min = Integer.parseInt(matcher.group(1)); int sec = Integer.parseInt(matcher.group(2)); int milli = 0; if (matcher.group(3) != null) { milli = Integer.parseInt(matcher.group(3)); if (matcher.group(3).length() == 2) { milli *= 10; // 将 xx 转为 xxx 毫秒 } } long timeMillis = (min * 60L + sec) * 1000 + milli; // 找到第一个时间标签之后的内容作为歌词正文 int textStart = line.lastIndexOf(']') + 1; // 取最后一个 ] 之后的内容 String text = line.substring(textStart).trim(); // 构造 LrcRow 对象(三参数构造器) result.add(new LrcRow(originalTimeTag, text, timeMillis)); } return result; } } } 打印是有歌词的,但是没显示
12-05
你这句话是问题的关键: > **“打印是有歌词的,但是没显示”** 我们来一步步分析你的代码和日志,找出「**为什么歌词明明解析出来了,却在界面上看不到?**」 --- ## ✅ 当前状态总结 | 项目 | 状态 | |------|------| | `lrcText` 是否正确传入? | ✅ 是,Log 显示完整歌词内容 | | 是否成功解析出 `LrcRow`? | ✅ 是,Log 打印:“解析到 21 行歌词” | | 每个 `LrcRow` 中是否有歌词文本? | ✅ 是,`text = "总想对你表白"` 等 | | 控件是否设置了数据? | ✅ 是,调用了 `holder.lyricView.setLrcData(lrcRows);` | | **但屏幕上看不到歌词?** | ❌ 说明:UI 渲染出了问题! | --- ## 🔍 核心排查点:`LrcView` 到底画了什么? 你现在用的是第三方库: ```java com.hw.lrcviewlib.LrcView; ``` 这个控件默认会把一行歌词拆成两部分绘制: - 左边:时间(如 `00:35.80`) → 使用 `.getTimeTag()` 或字段 `timeTag` - 右边:歌词正文(如 “总想对你表白”) → 应该使用 `text` ### ❌ 最常见的 bug 就在这里! 如果 `LrcView` 内部错误地只绘制了 `timeTag` 字段(即 `[00:35.80]`),而没有绘制 `text`,那你就只能看到一堆时间数字,看不到真正的歌词! --- ## 🛠 如何验证是不是这个问题? ### ✅ 方法一:临时修改 `LrcRow` 构造,让 timeTag = 歌词 在你当前的 `parseLrcLine` 方法中,改一下构造参数顺序(测试用): ```java // 原来的写法(可能是错的) result.add(new LrcRow(originalTimeTag, text, timeMillis)); // 改为:把歌词放进第一个参数(欺骗 LrcView) result.add(new LrcRow(text, text, timeMillis)); // 第一个参数是 timeTag,现在变成歌词 ``` 👉 如果改完后,屏幕上终于出现了“雨”、“不停落下来”等歌词内容 —— 那就证明: > 💥 `LrcView` 内部根本就没画 `text` 字段,而是画了 `timeTag`! 这是典型的 **第三方库使用错误或封装缺陷**。 --- ## ✅ 解决方案一:确认并修复 `LrcView` 的绘制逻辑 你需要查看 `LrcView.java` 源码中的绘制代码。找到类似方法: ```java private void drawSingleRow(Canvas canvas, LrcRow row, float x, float y, Paint paint) { canvas.drawText(row.timeTag, x, y, paint); // ❌ 错了!应该画 row.text } ``` ✅ 正确应为: ```java canvas.drawText(row.text, x, y, paint); // ✅ 显示歌词正文 ``` ### 如果你能改源码 → 直接改掉它! #### 修改建议位置(常见文件路径): ``` your_project/ └── libs/ └── lrcviewlib/ └── src/ └── main/ └── java/ └── com/hw/lrcviewlib/ ├── LrcView.java └── LrcRow.java ``` 打开 `LrcView.java`,搜索 `.drawText(`,看它画的是哪个字段。 --- ## ✅ 解决方案二:如果你不能改源码(比如是 aar 包) 那你必须“适应”它的逻辑 —— 它要 `timeTag` 里有内容才显示?那就把歌词塞进去! ### 黑客式写法(hack 法): ```java // 在 parseLrcLine 中改为: result.add(new LrcRow(text, text, timeMillis)); // 把歌词放进 timeTag ``` ⚠️ 虽然语义不对,但能强制让它显示出来。 --- ## ✅ 解决方案三:自定义一个简单的歌词 View 替代 `LrcView` 既然第三方库不可控,不如自己写一个轻量级的歌词控件。 ### ✅ 自定义 `SimpleLrcView.java` ```java public class SimpleLrcView extends View { private List<LrcRow> rows = new ArrayList<>(); private int currentLine = -1; private Paint normalPaint, highlightPaint; private float lineHeight; public SimpleLrcView(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init() { normalPaint = new Paint(Paint.ANTI_ALIAS_FLAG); normalPaint.setTextSize(60); normalPaint.setColor(Color.parseColor("#919191")); normalPaint.setTextAlign(Paint.Align.CENTER); highlightPaint = new Paint(Paint.ANTI_ALIAS_FLAG); highlightPaint.setTextSize(70); highlightPaint.setColor(Color.WHITE); highlightPaint.setTypeface(Typeface.DEFAULT_BOLD); highlightPaint.setTextAlign(Paint.Align.CENTER); lineHeight = 80; } public void setLrcData(List<LrcRow> data) { this.rows = data; currentLine = 0; invalidate(); } public void setCurrentTime(long timeMs) { for (int i = 0; i < rows.size(); i++) { if (i == rows.size() - 1 || (i < rows.size() - 1 && timeMs >= rows.get(i).getTimeMillis() && timeMs < rows.get(i + 1).getTimeMillis())) { if (currentLine != i) { currentLine = i; invalidate(); } return; } } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (rows.isEmpty()) return; float centerY = getHeight() / 2f; for (int i = 0; i < rows.size(); i++) { float y = centerY + (i - currentLine) * lineHeight; if (y < 0 || y > getHeight() + lineHeight) continue; Paint paint = (i == currentLine) ? highlightPaint : normalPaint; String text = rows.get(i).getText(); // 确保调用 getText() canvas.drawText(text, getWidth() / 2f, y, paint); } } } ``` ### 在 XML 布局中替换: ```xml <!-- fragment_song_item.xml --> <com.weishitech.qichechangtingyinyue.widget.SimpleLrcView android:id="@+id/lyricView" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` 然后在 `SongViewHolder` 中换成这个 view。 --- ## ✅ 其他可能原因排查 ### 1. 字体颜色太淡 or 背景透明? 你设置的颜色都是白色: ```java .setTimeTextColor(Color.parseColor("#FFFFFF")) .setHeightRowColor(Color.parseColor("#FFFFFF")) ``` 但如果背景也是浅色或透明,可能看不清! ✅ 建议临时改成对比明显的颜色测试: ```java .setNormalRowColor(Color.GRAY) .setHeightRowColor(Color.RED) // 红色高亮,一眼看出有没有渲染 ``` ### 2. 控件高度为 0? 检查 `fragment_song_item.xml` 中 `LrcView` 的布局: ```xml <com.hw.lrcviewlib.LrcView android:id="@+id/lyricView" android:layout_width="match_parent" android:layout_height="200dp" /> <!-- 不要用 wrap_content,可能导致高度为0 --> ``` ✅ 推荐给固定高度或 `0dp + weight`。 --- ## ✅ 总结:你现在的问题不是解析,而是「渲染」! | 问题 | 原因 | 解决办法 | |------|------|-----------| | 日志有歌词,但界面不显示 | `LrcView` 只画了 `timeTag` 字段 | 修改其源码,改为画 `row.text` | | 或者黑客写法 | 让 `new LrcRow(text, text, time)` | 强制显示歌词 | | 或者彻底换掉 | 自己写 `SimpleLrcView` | 更可控、更稳定 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值