cloudroam
2025-03-24 168f53f24a8d13968a9e13d3072af8f046f674be
fix 324 免登陆,删除ActionBar
已修改8个文件
已添加17个文件
1090 ■■■■ 文件已修改
app/src/main/AndroidManifest.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/database/entity/ApiResponse.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/database/repository/KeywordRepository.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/database/response/UserInfo.kt 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/database/service/ApiService.kt 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/ui/notifications/NotificationsFragment.kt 131 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/ui/profile/EditProfileActivity.kt 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/utils/SettingUtils.kt 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_button_black.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/default_avatar.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/ic_back.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_ai_assistant.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_email.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_feedback.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_friend_invitation.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_offline_mode.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_privacy.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_set_reminder.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_tutorial.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_wait_todo.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/me_xiaohongshu.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_edit_profile.xml 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/dialog_edit_profile.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_notifications.xml 475 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/styles.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/AndroidManifest.xml
@@ -111,7 +111,9 @@
            android:name=".activity.ContentDetailActivity"
            android:theme="@style/Theme.ContentDetail"
            android:exported="false" />
        <activity
            android:name=".ui.profile.EditProfileActivity"
            android:exported="false"/>
    </application>
</manifest>
app/src/main/java/com/example/firstapp/database/entity/ApiResponse.kt
@@ -1,7 +1,7 @@
package com.example.firstapp.database.entity
data class ApiResponse<T>(
    val status: Int,
    val code: String,
    val msg: String,
    val info: String,
    val data: T
app/src/main/java/com/example/firstapp/database/repository/KeywordRepository.kt
@@ -15,7 +15,7 @@
        return try {
            // 从网络获取配置
            val response = apiService.getKeywords()
            if (response.status == 1) {
            if (response.code == "0") {
                // 保存到本地数据库作为缓存
                saveToLocal(response.data)
                keywordDao.getAllKeywords()
app/src/main/java/com/example/firstapp/database/response/UserInfo.kt
对比新文件
@@ -0,0 +1,11 @@
package com.example.firstapp.database.response
// 添加数据类
data class UserInfo(
    val id: Long,
    val name: String,
    val cover: String,
    val contactTel: String,
    val passTime: String,
    val showed: Boolean
)
app/src/main/java/com/example/firstapp/database/service/ApiService.kt
@@ -6,10 +6,12 @@
import com.example.firstapp.database.response.DictResponse
import com.example.firstapp.database.response.LoginResponse
import com.example.firstapp.database.response.SecurityResponse
import com.example.firstapp.database.response.UserInfo
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query
/**
@@ -34,12 +36,15 @@
    @GET("config-security/enable-list-all")
    suspend fun getSecurityList(): SecurityResponse
    @GET("flower/api/supplier/info/{phone}")
    suspend fun getUserInfo(@Path("phone") phone: String): ApiResponse<UserInfo>
}
// 创建Retrofit实例(单例)
object RetrofitClient{
    private const val BASE_URL ="http://192.168.1.198:8888/jshERP-boot/"
    private const val BASE_URL ="http://192.168.1.213:8080/"
    //添加Gson解析器,用于自动将JSON响应转换为Kotlin/Java对象
    private val retrofit = Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build()
app/src/main/java/com/example/firstapp/ui/notifications/NotificationsFragment.kt
@@ -11,6 +11,8 @@
import android.view.ViewGroup
import android.widget.EditText
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
@@ -21,7 +23,9 @@
import com.example.firstapp.databinding.FragmentNotificationsBinding
import com.example.firstapp.ui.reminderOther.ReminderOtherAddActivity2
import com.example.firstapp.ui.reminderOther.ReminderSettingsFragmentOther
import com.example.firstapp.ui.profile.EditProfileActivity
import kotlinx.coroutines.launch
import com.bumptech.glide.Glide
class NotificationsFragment : Fragment() {
@@ -40,6 +44,31 @@
    private var xiaohongshuUrl = ""
    private var contactEmail = ""
    private var shareText = ""
    private val editProfileLauncher = registerForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { result ->
        if (result.resultCode == AppCompatActivity.RESULT_OK) {
            result.data?.let { data ->
                // 更新昵称
                val newNickname = data.getStringExtra("nickname")
                newNickname?.let {
                    binding.tvNickname.text = it
                }
                // 更新头像
                val avatarUri = data.getStringExtra("avatar_uri")
                avatarUri?.let {
                    Glide.with(requireContext())
                        .load(Uri.parse(it))
                        .circleCrop()
                        .into(binding.ivAvatar)
                }
                // TODO: 将更新后的信息保存到服务器
            }
        }
    }
    override fun onCreateView(
        inflater: LayoutInflater,
@@ -92,49 +121,72 @@
    private fun setupClickListeners() {
        // 设置提醒
        binding.settingsReminder.setOnClickListener {
            // 跳转到设置提醒页面
        binding.layoutReminder.setOnClickListener {
            findNavController().navigate(R.id.action_navigation_notifications_to_reminderSettingsFragment)
        }
//         设置其他提醒 暂时不需要
//        binding.settingsReminderOther.setOnClickListener {
//            // 跳转到设置提醒页面
//            findNavController().navigate(R.id.action_settings_to_reminderSettingsFragmentOther)
//        }
        // 待办
        binding.layoutTodo.setOnClickListener {
            // TODO: 实现待办功能
            Toast.makeText(context, "待办功能开发中", Toast.LENGTH_SHORT).show()
        }
        // 好友邀请
        binding.layoutInvite.setOnClickListener {
            shareToWechat()
        }
        // AI助手
        binding.layoutAi.setOnClickListener {
            // TODO: 实现AI助手功能
            Toast.makeText(context, "AI助手功能开发中", Toast.LENGTH_SHORT).show()
        }
        // 离线模式
        binding.layoutOffline.setOnClickListener {
            // TODO: 实现离线模式功能
            Toast.makeText(context, "离线模式功能开发中", Toast.LENGTH_SHORT).show()
        }
        // 关于小红书
        binding.aboutApp.setOnClickListener {
            // 跳转到小红书账号页面
        binding.layoutAbout.setOnClickListener {
            val intent = Intent(Intent.ACTION_VIEW, Uri.parse(xiaohongshuUrl))
            startActivity(intent)
        }
        // 邮件联系
        binding.emailContact.setOnClickListener {
        binding.layoutEmail.setOnClickListener {
            showEmailDialog()
        }
        // 意见与反馈
        binding.feedback.setOnClickListener {
        binding.layoutFeedback.setOnClickListener {
            showFeedbackDialog()
        }
        // 分享给好友
        binding.shareToFriends.setOnClickListener {
            shareToWechat()
        }
        // 隐私协议
        binding.privacyPolicy.setOnClickListener {
        binding.layoutPrivacy.setOnClickListener {
            startContentActivity("privacy_policy", "隐私协议")
        }
        // 如何使用
        binding.howToUse.setOnClickListener {
            startContentActivity("user_guide", "使用说明")
        // 使用教程
        binding.layoutTutorial.setOnClickListener {
            startContentActivity("user_guide", "使用教程")
        }
        // 头像点击
        binding.layoutUserInfo.setOnClickListener {
            val intent = Intent(requireContext(), EditProfileActivity::class.java).apply {
                putExtra("nickname", binding.tvNickname.text.toString())
                // 如果有当前头像的URL,也可以传递
                // putExtra("avatar_url", currentAvatarUrl)
            }
            editProfileLauncher.launch(intent)
        }
        // VIP续费
        binding.btnRenew.setOnClickListener {
            Toast.makeText(context, "VIP续费功能开发中", Toast.LENGTH_SHORT).show()
        }
    }
@@ -198,6 +250,45 @@
        startActivity(intent)
    }
    private suspend fun loadUserInfo() {
        try {
            val response = RetrofitClient.apiService.getUserInfo("17586582287")
            if (response.code == "0" && response.data != null) {
                val userInfo = response.data
                // 设置头像
                Glide.with(this)
                    .load(userInfo.cover)
                    .placeholder(R.drawable.default_avatar)
                    .into(binding.ivAvatar)
                // 设置昵称和账号
                binding.tvNickname.text = userInfo.name
                binding.tvUserId.text = "个人账号:${userInfo.contactTel}"
                // 设置VIP信息
                if (userInfo.showed) {
                    binding.cardVip.visibility = View.VISIBLE
                    binding.tvVipExpire.text = "${userInfo.passTime} 到期"
                } else {
                    binding.cardVip.visibility = View.GONE
                }
            }
        } catch (e: Exception) {
            e.printStackTrace()
            Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show()
        }
    }
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        // 加载用户信息
        lifecycleScope.launch {
            loadUserInfo()
        }
    }
    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
app/src/main/java/com/example/firstapp/ui/profile/EditProfileActivity.kt
对比新文件
@@ -0,0 +1,137 @@
package com.example.firstapp.ui.profile
import android.Manifest
import android.app.Activity
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.MediaStore
import android.view.View
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.bumptech.glide.Glide
import com.example.firstapp.R
import com.example.firstapp.databinding.ActivityEditProfileBinding
class EditProfileActivity : AppCompatActivity() {
    private lateinit var binding: ActivityEditProfileBinding
    private var selectedImageUri: Uri? = null
    private val pickImage = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
        if (result.resultCode == Activity.RESULT_OK) {
            result.data?.data?.let { uri ->
                selectedImageUri = uri
                Glide.with(this)
                    .load(uri)
                    .circleCrop()
                    .into(binding.ivAvatar)
            }
        }
    }
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityEditProfileBinding.inflate(layoutInflater)
        setContentView(binding.root)
        // 设置状态栏
        window.statusBarColor = ContextCompat.getColor(this, android.R.color.white)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
        }
        // 获取传入的数据
        val currentNickname = intent.getStringExtra("nickname") ?: ""
        val currentAvatarUrl = intent.getStringExtra("avatar_url")
        // 设置当前数据
        binding.etNickname.setText(currentNickname)
        if (!currentAvatarUrl.isNullOrEmpty()) {
            Glide.with(this)
                .load(currentAvatarUrl)
                .circleCrop()
                .into(binding.ivAvatar)
        }
        // 设置点击事件
        binding.btnBack.setOnClickListener {
            finish()
        }
        binding.ivAvatar.setOnClickListener {
            checkAndRequestPermission()
        }
        binding.btnSaveBottom.setOnClickListener {
            saveAndFinish()
        }
        binding.btnSaveBottom.setOnClickListener {
            saveAndFinish()
        }
    }
    private fun saveAndFinish() {
        val newNickname = binding.etNickname.text.toString()
        if (newNickname.isEmpty()) {
            Toast.makeText(this, "昵称不能为空", Toast.LENGTH_SHORT).show()
            return
        }
        val resultIntent = Intent().apply {
            putExtra("nickname", newNickname)
            putExtra("avatar_uri", selectedImageUri?.toString())
        }
        setResult(Activity.RESULT_OK, resultIntent)
        finish()
    }
    private fun checkAndRequestPermission() {
        when {
            ContextCompat.checkSelfPermission(
                this,
                Manifest.permission.READ_EXTERNAL_STORAGE
            ) == PackageManager.PERMISSION_GRANTED -> {
                openGallery()
            }
            else -> {
                ActivityCompat.requestPermissions(
                    this,
                    arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
                    PERMISSION_REQUEST_CODE
                )
            }
        }
    }
    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        when (requestCode) {
            PERMISSION_REQUEST_CODE -> {
                if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    openGallery()
                } else {
                    Toast.makeText(this, "需要存储权限来选择头像", Toast.LENGTH_SHORT).show()
                }
            }
        }
    }
    private fun openGallery() {
        val intent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
        pickImage.launch(intent)
    }
    companion object {
        private const val PERMISSION_REQUEST_CODE = 100
    }
}
app/src/main/java/com/example/firstapp/utils/SettingUtils.kt
@@ -161,6 +161,6 @@
    }
    init {
        throw UnsupportedOperationException("u can't instantiate me...")
        throw UnsupportedOperationException("u can't instantiate drawable-me...")
    }
}
app/src/main/res/drawable/bg_button_black.xml
对比新文件
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@android:color/black"/>
    <corners android:radius="4dp"/>
</shape>
app/src/main/res/drawable/default_avatar.xml
对比新文件
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#CCCCCC" />
    <size
        android:width="50dp"
        android:height="50dp" />
</shape>
app/src/main/res/drawable/ic_back.xml
对比新文件
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path
        android:fillColor="#000000"
        android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
</vector>
app/src/main/res/drawable/me_ai_assistant.png
app/src/main/res/drawable/me_email.xml
对比新文件
@@ -0,0 +1,17 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M985.2,842.5c-1.7,23.9 -24.2,45.3 -49.5,47.6a4795.6,4795.6 0,0 1,-847.4 0c-25.3,-2.3 -47.8,-23.8 -49.5,-47.6 -13.7,-194 1.8,-388 46.3,-582.1 5.6,-23.9 28.8,-45.1 51.2,-47.1a4253,4253 0,0 1,751.5 0c22.4,2 45.6,23.3 51.2,47.1 44.5,194 59.9,388 46.3,582.1z"
      android:fillColor="#0091FF"/>
  <path
      android:pathData="M887.7,213.3a4266.5,4266.5 0,0 0,-246.9 -14.7c-74.8,115.1 -169.5,235.4 -266.7,353.4 109.5,111.4 227.4,225.8 335.5,332.6a5141.6,5141.6 0,0 0,265.7 -17.2c5.5,-7.4 9.1,-16 9.7,-24.9 13.7,-194 -1.8,-388 -46.3,-582.1 -5.6,-23.9 -28.8,-45.1 -51.2,-47.1z"
      android:strokeAlpha="0.3"
      android:fillColor="#1B6DAB"
      android:fillAlpha="0.3"/>
  <path
      android:pathData="M888.5,213.3A4252.9,4252.9 0,0 0,137.1 213.2c-16.5,1.5 -33.2,13.3 -43.3,28.9 97.2,124.1 238,268.8 383.4,413.4 18.2,18.1 47.8,18.1 66,0 146.7,-145.8 288.7,-291.8 386.2,-416.7 -10.2,-13.9 -25.7,-24.1 -40.9,-25.5z"
      android:fillColor="#42AEFF"/>
</vector>
app/src/main/res/drawable/me_feedback.xml
对比新文件
@@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="128dp"
    android:height="128dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M360.4,557.5l184.9,0 0,30.8 -184.9,0 0,-30.8Z"
      android:fillColor="#00D3D3"/>
  <path
      android:pathData="M360.4,481l308.2,0 0,30.8 -308.2,0 0,-30.8Z"
      android:fillColor="#00D3D3"/>
  <path
      android:pathData="M360.4,404.4l308.2,0 0,30.8 -308.2,0 0,-30.8Z"
      android:fillColor="#00D3D3"/>
  <path
      android:pathData="M512,64c-247.3,0 -447.7,200.5 -447.7,447.7s200.5,447.7 447.7,447.7 447.7,-200.5 447.7,-447.7S759.3,64 512,64zM761.1,620.2c0,34 -27.6,61.6 -61.6,61.6l-154.1,0 0,123.3L422,681.8 329.6,681.8c-34,0 -61.6,-27.6 -61.6,-61.6L267.9,373.6c0,-34 27.6,-61.6 61.6,-61.6l369.8,0c34,0 61.6,27.6 61.6,61.6L761.1,620.2z"
      android:fillColor="#00D3D3"/>
</vector>
app/src/main/res/drawable/me_friend_invitation.xml
对比新文件
@@ -0,0 +1,18 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M249.7,287.7h524.9c82.9,0 149.7,67.4 149.7,149.7L924.3,862.2c0,82.9 -67.4,149.7 -149.7,149.7L249.7,1011.9c-82.9,0 -149.7,-67.4 -149.7,-149.7L99.9,437.2c-0.6,-82.1 66.8,-149.5 149.7,-149.5zM249.7,287.7"
      android:fillColor="#FF5000"/>
  <path
      android:pathData="M399.2,562.8h225.1v449.5L399.2,1012.3L399.2,562.8zM535.3,188.2s154.6,-190.5 199.7,-174.9c0,0 82.9,-48.1 124.9,249.9v24.8h-124.9s21.1,-179.4 -50.2,-149.7L534.5,287.9c0.8,-0.2 0.8,-99.7 0.8,-99.7zM479,188.8S324.4,0.2 279.3,15.8c0,0 -82.9,-47.5 -124.9,247.4v24.8h124.9S258.3,110.6 329.5,139.5l100.1,98.9 50.2,49.6 -0.8,-99.1zM479,188.8"
      android:fillColor="#FFB400"/>
  <path
      android:pathData="M161.8,287.7h699.4c76,0 137.2,61.2 137.2,137.2s-61.8,137.2 -137.2,137.2L161.8,562.2c-76,0 -137.2,-61.2 -137.2,-137.2s61.8,-137.2 137.2,-137.2zM161.8,287.7"
      android:fillColor="#FF6E00"/>
  <path
      android:pathData="M624.2,300v-12.3h-0.6c-6.1,-56.3 -53.9,-100.1 -111.8,-100.1 -58.2,0 -105.7,43.8 -111.8,100.1h-0.6v275h225.1L624.4,300zM624.2,300"
      android:fillColor="#FFC937"/>
</vector>
app/src/main/res/drawable/me_offline_mode.xml
对比新文件
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="51.2dp"
    android:height="32dp"
    android:viewportWidth="1638"
    android:viewportHeight="1024">
  <path
      android:pathData="M1292.8,384A481.7,481.7 0,0 0,819.2 0C633.5,0 473.6,102.4 396.8,256 198.3,281.6 51.2,441.5 51.2,640A385.1,385.1 0,0 0,435.2 1024h831.9A316.9,316.9 0,0 0,1587.2 703.9c0,-166.3 -134.3,-307.2 -294.4,-319.9m-247.5,-38.1a63.9,63.9 0,0 1,0 90.4L909.6,571.9l135.7,135.7a63.9,63.9 0,0 1,-90.4 90.4L819.2,662.3 683.5,798a63.9,63.9 0,0 1,-90.4 -90.4l135.7,-135.7 -135.7,-135.6a63.9,63.9 0,1 1,90.4 -90.4L819.2,481.5l135.7,-135.6a63.9,63.9 0,0 1,90.4 0z"
      android:fillColor="#1296db"/>
</vector>
app/src/main/res/drawable/me_privacy.xml
对比新文件
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M464.3,14.4a73.9,73.9 0,0 1,87.7 0,682.2 682.2,0 0,0 164.5,96 1345.9,1345.9 0,0 0,184 42.9A72.6,72.6 0,0 1,957.4 217.3l0.3,0.6h-2.6a2953.9,2953.9 0,0 1,-3.2 305.9c-40.3,324.8 -293.1,499.2 -442.6,499.2 -149.4,0 -448,-247.4 -448,-503l0,-12.7v-4.3l0,-8.6 0,-8.6 0,-17.2c0.3,-121.6 1.7,-241.1 1.8,-249.1l0,-0.4a67.2,67.2 0,0 1,56.3 -64,608 608,0 0,0 178.9,-44.8 430.7,430.7 0,0 0,165.8 -96zM522.6,375c-40.7,0 -73.7,33 -73.7,73.7 0,25.6 13,48.1 32.8,61.3v136.7a42.3,42.3 0,0 0,84.6 0L566.3,510.2c0,-0.7 -0,-1.3 -0.1,-2a73.6,73.6 0,0 0,30.1 -59.4c0,-40.7 -33,-73.7 -73.7,-73.7z"
      android:fillColor="#000000"/>
</vector>
app/src/main/res/drawable/me_set_reminder.xml
对比新文件
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M648.2,887.7C648.1,962.8 587.6,1023.8 511.8,1023.8 436.7,1023.8 375.7,963.1 375.5,887.7 375.5,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7 648.2,887.7ZM603,88.6C603,39.8 562.2,0 511.9,0 461.7,0 420.9,39.7 420.9,88.6 420.9,93.5 421.3,98.4 422.1,103.2 296.4,145.8 205.1,254.8 205.1,409.7 205.1,409.7 205.1,580.3 205.1,580.3 205.1,580.3 193.3,728.9 148.9,730.4 122.5,730.4 102.2,750.3 102.2,774.7 102.2,799.3 122.6,819 147.8,819 147.8,819 511.9,819 511.9,819 511.9,819 830.6,819 830.6,819 830.6,819 876.1,819 876.1,819 901.4,819 921.6,799.2 921.6,774.7 921.6,750.1 901.3,730.4 876.1,730.4 830.6,730.4 819.4,580.3 819.4,580.3 819.4,580.3 819.4,409.7 819.4,409.7 819.4,254.7 734.2,145.6 601.8,103.1 602.6,98.4 603,93.5 603,88.6 603,88.6 603,88.6 603,88.6 603,88.6 603,88.6 603,88.6Z"
      android:fillColor="#272636"/>
</vector>
app/src/main/res/drawable/me_tutorial.xml
对比新文件
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M513.1,189.8c-177.9,0 -322.2,144.2 -322.2,322.2 0,177.9 144.2,322.2 322.2,322.2 177.9,0 322.2,-144.2 322.2,-322.2 -0,-177.9 -144.2,-322.2 -322.2,-322.2zM533.8,670c-5.7,5.6 -12.4,8.5 -20.2,8.5 -7.7,0 -14.4,-2.9 -20.2,-8.5 -5.7,-5.6 -8.6,-12.3 -8.6,-19.9 0,-7.6 2.8,-14.3 8.6,-19.9 5.7,-5.6 12.4,-8.5 20.2,-8.5 7.7,0 14.5,2.8 20.2,8.5 5.7,5.7 8.6,12.3 8.6,19.9 0,7.6 -2.9,14.3 -8.6,19.9zM617,446.1c-5,10.6 -16.6,24.4 -34.8,41.4 -8.7,8.6 -16.1,16 -22.2,22.2 -6,6.2 -10.6,11.4 -13.6,15.7 -5.4,8 -8.9,15.8 -10.6,23.4 -1.3,6.6 -2,18.1 -2,34.4 0,5.3 -2.4,9.3 -7.1,12 -4.7,2.7 -9.8,4 -15.4,4 -5.6,0 -10.6,-1.3 -15.2,-3.7 -4.5,-2.5 -6.8,-6.6 -6.8,-12.2 0.3,-12.6 0.8,-23 1.5,-31.2 0.7,-8.2 2.5,-15.9 5.6,-23.2 3,-7.3 7.9,-15 14.6,-23.2 6.7,-8.2 16.1,-18.7 28.2,-31.7 16.1,-16 26.6,-27.7 31.3,-35.4 4.7,-7.6 7.1,-18.8 7.1,-33.4 0,-7.3 -1.3,-14.3 -4,-21 -2.7,-6.6 -6.6,-12.5 -11.6,-17.7 -5,-5.2 -11.4,-9.2 -18.9,-12.2 -7.6,-3 -16.4,-4.5 -26.5,-4.5 -44.7,0 -67.1,26.3 -67.1,78.8 0,13.3 -7.7,19.9 -23.2,19.9 -6.7,0 -12,-1.8 -15.6,-5.5 -3.7,-3.6 -5.5,-8.5 -5.5,-14.4 0,-40.5 11.1,-70.1 33.3,-88.8 22.5,-18.6 49.1,-27.9 79.7,-27.9 30.6,0 56,9 76.2,26.9 20.5,17.3 30.8,40.9 30.8,70.8 -0,13.6 -2.7,25.7 -8.1,36.4z"
      android:fillColor="#d4237a"/>
  <path
      android:pathData="M802.7,4.1H223.5c-120.5,0 -218.2,97.7 -218.2,218.2v579.3c0,120.5 97.7,218.2 218.2,218.2H802.7c120.5,0 218.2,-97.7 218.2,-218.2V222.4c0,-120.5 -97.7,-218.2 -218.2,-218.2zM513.1,890.2c-208.9,0 -378.2,-169.3 -378.2,-378.2 0,-208.9 169.3,-378.2 378.2,-378.2 208.9,0 378.2,169.4 378.2,378.2 -0,208.9 -169.3,378.2 -378.2,378.2z"
      android:fillColor="#d4237a"/>
</vector>
app/src/main/res/drawable/me_wait_todo.xml
对比新文件
@@ -0,0 +1,21 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M76.4,82.1m135.9,0l525.5,0q135.9,0 135.9,135.9l0,580.5q0,135.9 -135.9,135.9l-525.5,0q-135.9,0 -135.9,-135.9l0,-580.5q0,-135.9 135.9,-135.9Z"
      android:fillColor="#A5ADF6"/>
  <path
      android:pathData="M642.4,379.2H229.3a41,41 0,0 1,0 -81.9h413.1a41,41 0,1 1,0 81.9zM485.5,611.9h-256a41,41 0,0 1,0 -81.9h256a41,41 0,0 1,0 81.9z"
      android:fillColor="#FFFFFF"/>
  <path
      android:pathData="M738.6,724.7m-221.6,0a221.6,221.6 0,1 0,443.2 0,221.6 221.6,0 1,0 -443.2,0Z"
      android:fillColor="#A5ADF6"/>
  <path
      android:pathData="M738.6,503.1a221.5,221.5 0,0 0,-71.7 431.3h70.8a135.9,135.9 0,0 0,136.1 -135.7v-249.5a220.2,220.2 0,0 0,-135.2 -46.1z"
      android:fillColor="#635DF7"/>
  <path
      android:pathData="M686.1,857a41,41 0,0 1,-31.3 -67.4l60,-70.9v-97.7a41,41 0,0 1,81.9 0v112.6a41,41 0,0 1,-9.7 26.4l-69.6,82.4a41,41 0,0 1,-31.3 14.6z"
      android:fillColor="#FFFFFF"/>
</vector>
app/src/main/res/drawable/me_xiaohongshu.xml
对比新文件
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="32dp"
    android:height="32dp"
    android:viewportWidth="1024"
    android:viewportHeight="1024">
  <path
      android:pathData="M726.5,457.5c-6.7,-0.1 -13.4,0 -20,-0.1 -2.4,0 -3,1.1 -3,3.2 0.1,5.1 0.1,10.1 0.1,15.2v0c0.1,4.9 0,9.8 0.1,14.6 0,3.9 0.7,4.7 4.5,4.7 7.1,0.1 14.3,0 21.4,0.1 2.7,0 3.7,-1.3 3.7,-3.8 -0.1,-9.2 -0.1,-18.3 -0.2,-27.5a6.8,6.8 0,0 0,-6.5 -6.5z"
      android:fillColor="#FF2E4D"/>
  <path
      android:pathData="M849.9,51.2h-675.8c-67.9,0 -122.9,55 -122.9,122.9v675.8c0,67.9 55,122.9 122.9,122.9h675.8c67.9,0 122.9,-55 122.9,-122.9L972.8,174.1c0,-67.9 -55,-122.9 -122.9,-122.9zM250.8,505.7c-0.7,10.6 -1.4,21.3 -2.6,31.8 -2.1,18.4 -6.2,36.3 -14.6,52.9 -2.2,4.1 -5.1,7.8 -8.2,12.5 -1.9,-3.9 -3.4,-7 -4.8,-10.1a3203.6,3203.6 0,0 1,-14.8 -33.6c-0.5,-1.2 -0.9,-2.9 -0.4,-4 3.2,-6.8 3.4,-14.1 3.9,-21.4 0.6,-9.2 1.4,-18.2 2,-27.4 0.5,-7 0.8,-14 1.4,-21 0.7,-8.1 1.5,-16.2 2.2,-24.2 0.1,-2 1,-2.6 2.8,-2.6 11.1,0 22.1,0 33.2,-0.1 2.4,0 3,1 2.9,3.2 -1,14.6 -1.9,29.3 -2.9,43.9zM322.1,593.1c-0.7,9.5 -5.1,17.5 -12.6,23.5 -5.4,4.4 -11.7,6.2 -18.7,6.1 -5.9,0 -11.7,-0.1 -17.5,0 -2,0 -3.3,-0.6 -4.1,-2.6 -3.4,-7.7 -6.9,-15.3 -10.3,-23 -0.5,-1.1 -0.7,-2.3 -1.1,-3.5 -1.6,-4.1 -1.6,-4.3 3,-4.4h13.9c5.9,0 8.5,-2.5 8.6,-8.6 0.1,-4.6 0.1,-9.1 0.1,-13.7L283.3,494.2c0.1,0.2 0.2,0.2 0.3,0.2L283.6,408.6c0,-4.3 0.1,-4.4 4.4,-4.4h29.2c5.1,0 5.2,0.1 5.2,5.4 0,27.2 0,54.4 0.1,81.5 0.1,23.9 0.3,47.8 0.3,71.6 0,10.1 0.1,20.3 -0.7,30.3zM397.7,564.2c-5,11.6 -10.2,23 -15.3,34.5 -0.5,1.1 -1.2,2.3 -2.4,4.4v0c-3,-4.5 -6.1,-8.2 -8.1,-12.4 -2.8,-6.1 -4.5,-12.8 -7.4,-19 -3,-6.7 -4.2,-13.9 -5.6,-20.9 -1.2,-6 -1.4,-12.3 -1.8,-18.3 -1.2,-15.4 -2.2,-30.8 -3.4,-46.1a2450,2450 0,0 0,-2.1 -25.2c-0.1,-1.5 0.2,-2.2 1.9,-2.2 11.5,0 23,-0.1 34.5,-0.2 2.2,0 3,1 3.1,3 0.3,4.7 0.5,9.3 0.9,14 0.3,3.8 0.7,7.7 1,11.4 0.5,5.4 1,10.8 1.4,16.1 0.5,6.9 0.5,13.8 1.5,20.6 1.3,10.4 0.3,21.1 3.9,31.3 0.9,2.4 -1,6.1 -2.2,8.9zM481.9,586.2c-2.9,6.7 -6,13.2 -9,19.8 -1.6,3.7 -3.2,7.5 -4.8,11.3 -1.9,4.5 -3.1,5.4 -7.9,5.4h-22.3c-7.5,0 -15,0.2 -22.5,-0.1 -3.6,-0.1 -7.1,-1.3 -10.6,-2 -1.8,-0.4 -2.2,-1.4 -1.4,-3.1a3709.7,3709.7 0,0 0,13.5 -29.2c1,-2.2 1.9,-4.7 3,-6.9 0.3,-0.6 1.4,-1.3 2,-1.1 12.4,3.2 25.1,2.8 37.8,2.6a874.6,874.6 0,0 1,20.1 0c3.2,0 3.5,0.5 2.2,3.4zM485.8,564.3a4.5,4.5 0,0 1,-2.7 1.4c-13.9,0.1 -27.9,0.1 -41.8,-0.1 -4.2,-0.1 -8.6,-1.1 -11.7,-4.3 -3.4,-3.4 -5,-7.4 -3.3,-11.9a897.5,897.5 0,0 1,9.6 -24.1c3.9,-9.2 7.8,-18.3 12.1,-28.2 -2.3,-0.1 -3.7,-0.3 -5,-0.3 -4.1,-0.1 -8.2,0.3 -12.3,-0.2 -4.5,-0.5 -9,-1 -12.5,-4.8 -3.4,-3.7 -3.9,-8 -2.6,-12.3 2.2,-6.8 5,-13.4 7.8,-20 2.7,-6.2 5.7,-12.2 8.5,-18.2 3,-6.5 5.9,-13.1 8.8,-19.6a1362,1362 0,0 0,7.7 -17.3c0.7,-1.8 1.9,-2.5 3.9,-2.5 10.9,0.1 21.9,0 32.9,0 3.6,0 3.7,0.4 2.3,3.7 -6.3,14.6 -12.7,29.2 -19,43.8a11.5,11.5 0,0 0,-1.2 4.9c0.2,3.9 1,4.5 5.1,4.5 8.2,0.1 16.4,0 24.4,0 1.6,0 3.4,0.2 5,0.3 2.3,0.1 2.6,1.1 1.6,3.1a2455.2,2455.2 0,0 0,-13.4 29.2c-3,6.9 -5.9,13.9 -8.9,20.8a1530.2,1530.2 0,0 1,-6.2 13.8c-1.9,4.2 -0.6,6.3 4.2,6.4 6,0 12,0.1 18.1,0 2.1,0 3.1,0.6 2.1,2.9 -3.6,8.3 -7.2,16.6 -10.8,24.9 -0.7,1.5 -1.4,3.1 -2.4,4.4zM620.6,623h-125.3c-1.7,-0.2 -3.5,-0.2 -5.9,-0.2v-0c0.9,-2.6 1.4,-4.4 2.2,-6.1 4.7,-10.3 9.4,-20.5 14.1,-30.8 1,-2.3 2.5,-2.9 4.8,-2.9h28.7c4.5,0 4.8,-0.2 4.8,-4.7L543.7,461.7c0,-4 -0.1,-4.1 -4.1,-4.1 -6.1,0 -12.3,-0.1 -18.4,0 -2.3,0 -3.3,-0.5 -3.3,-3.1 0.1,-11 0.1,-21.9 0.1,-32.9 0,-3.9 0.1,-3.9 3.9,-3.9h73c4.2,0 8.6,0.1 12.8,0 2,0 2.8,0.8 2.7,2.9 -0.1,11.4 -0.1,22.8 -0.1,34.3 0,2 -0.7,2.8 -2.8,2.8 -6.6,-0.1 -13.1,0.1 -19.8,0.1 -2.3,0 -3.3,1.1 -3.3,3.5 0.1,18.4 0.1,36.7 0.1,55.1 0,20.9 0,41.7 0.1,62.7 0,3.8 0.4,4.2 4.2,4.2h31.4c3.4,0 3.9,0.4 3.9,3.8 0.1,11 0,21.9 0.1,32.9 -0,2.9 -1.6,3.2 -3.7,3.2zM819.3,588.1c-0.1,16.4 -11,29.2 -26.4,32.9 -4.3,1.1 -8.8,1.4 -13.2,1.5 -6.8,0.2 -13.7,0.1 -20.6,0.1 -4.2,0 -5.4,-0.8 -7,-4.7 -3.3,-8 -6.8,-15.9 -10.3,-23.9l-0.7,-1.6c-1.2,-3.1 -0.8,-3.6 2.5,-3.6 9.4,-0.1 19,0.2 28.4,-0.3 5.7,-0.3 8,-2.9 8.2,-8.6 0.2,-11 -0.3,-22.1 -0.1,-33.1 0.1,-5.5 -6.8,-11.4 -11.7,-11.7a32.8,32.8 0,0 0,-2.7 -0.1c-18.7,0 -37.5,0 -56.3,0.1 -5.3,0 -5.7,0.5 -5.7,5.9l0.2,77.6c0,4.1 -0.1,4.2 -4.2,4.2h-31.2c-4,0 -4.3,-0.3 -4.3,-4.3v-39.9c0.1,0.1 0.1,0.1 0.2,0.1v-41c0,-2.8 -1.9,-2.9 -3.8,-2.9 -10.2,0.1 -20.4,0.3 -30.6,0.3 -6.9,0 -6.2,0.8 -6.3,-6.4 -0.1,-9.9 0,-19.9 0,-29.8 0,-3.6 0.4,-4.1 3.9,-4.1 10.7,-0.1 21.3,0 32,-0.1 4.1,0 4.3,-0.2 4.4,-4.2 0.1,-9.9 -0.1,-19.8 0,-29.7 0,-2.5 -1,-3.2 -3.4,-3.2 -6.8,0.1 -13.8,-0.1 -20.6,0 -2.2,0 -2.9,-0.7 -2.9,-2.9 0.1,-11.3 0.1,-22.5 -0.1,-33.7 0,-2.7 1,-3.3 3.4,-3.3 6.3,0.1 12.6,0 19,0 4.2,0 4.5,-0.3 4.5,-4.7 0,-2.6 0.1,-5.2 0,-7.9 -0.1,-2.5 1,-3.2 3.3,-3.2 9.1,0.1 18.2,0.1 27.3,0.1h5c3.9,0 4,0 4.2,4.1 0.1,2.4 -0.2,4.9 -0.1,7.3 0.1,3.4 1,4.3 4.3,4.4 5.7,0.1 11.3,0.1 17,0.1 14.6,0.1 27.4,5.1 37,16.3 5.4,6.2 8.7,13.8 9.2,22.1 0.5,8.5 0.2,17 0.3,25.5 0,3.2 0.2,6.4 0.4,9.5 0.1,3.2 0.9,4 4.1,3.9a48.6,48.6 0,0 1,19 3.2c13,5 21,14.2 23.6,28a44.4,44.4 0,0 1,0.7 8.3c0.1,17.9 0.1,35.8 -0.1,53.7zM810.1,453.6c-5.9,3.9 -12.2,3.8 -19.4,3.7 -2.2,0 -5.2,0.1 -8.1,-0.1 -0.7,-0.1 -2,-1 -2.1,-1.6 -0.7,-8.8 -1.8,-17.8 1.4,-26.4 2.8,-7.6 9.6,-12 17.6,-12.2a20,20 0,0 1,19.3 14.3c2.3,8.3 -1.6,17.4 -8.7,22.2z"
      android:fillColor="#FF2E4D"/>
</vector>
app/src/main/res/layout/activity_edit_profile.xml
对比新文件
@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <!-- 标题栏(保持不变) -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:background="@android:color/white">
        <ImageButton
            android:id="@+id/btn_back"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_centerVertical="true"
            android:background="?attr/selectableItemBackgroundBorderless"
            android:src="@drawable/ic_back"
            android:contentDescription="返回"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="资料编辑"
            android:textColor="@android:color/black"
            android:textSize="18sp"/>
    </RelativeLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#EEEEEE"/>
    <!-- 内容区域 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">
        <!-- 昵称行 -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            android:paddingVertical="12dp">
            <TextView
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="昵称"
                android:textColor="#333333"
                android:textSize="16sp"/>
            <!-- 使用 View 作为间隔 -->
            <View
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="@android:color/transparent"/>
            <EditText
                android:id="@+id/et_nickname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:minWidth="120dp"
                android:background="@null"
                android:hint="请输入昵称"
                android:textSize="16sp"
                android:padding="8dp"
                android:gravity="end"/> <!-- 文本右对齐 -->
        </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#EEEEEE"/>
        <!-- 头像行 -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            android:paddingVertical="16dp">
            <TextView
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:text="头像"
                android:textColor="#333333"
                android:textSize="16sp"/>
            <!-- 使用 View 作为间隔 -->
            <View
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="@android:color/transparent"/>
            <com.google.android.material.imageview.ShapeableImageView
                android:id="@+id/iv_avatar"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:scaleType="centerCrop"
                android:src="@drawable/default_avatar"/>
        </LinearLayout>
    </LinearLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
    <Button
        android:id="@+id/btn_save_bottom"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:background="@drawable/bg_button_black"
        android:text="保存"
        android:textColor="@android:color/white"/>
</LinearLayout>
app/src/main/res/layout/dialog_edit_profile.xml
对比新文件
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="16dp">
    <EditText
        android:id="@+id/edit_nickname"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="输入新昵称"
        android:inputType="text"
        android:maxLines="1" />
</LinearLayout>
app/src/main/res/layout/fragment_notifications.xml
@@ -3,286 +3,301 @@
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">
    android:background="@android:color/white"
    android:fillViewport="true"
    android:paddingBottom="56dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <!-- 标题栏 -->
        <TextView
        <!-- 顶部广告位 - 减小高度 -->
        <ImageView
            android:id="@+id/iv_banner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#FFE4C4"
            android:gravity="center"
            android:padding="16dp"
            android:text="终身会员"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            android:textStyle="bold" />
            android:layout_height="32dp"
            android:scaleType="centerCrop" />
        <!-- 功能区标题 -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:paddingHorizontal="16dp"
            android:paddingVertical="8dp"
            android:text="功能"
            android:textColor="@android:color/darker_gray"
            android:textSize="14sp"
            android:textStyle="bold" />
        <!-- 设置选项 -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <!-- 设置提醒 -->
        <!-- 用户信息区域 - 减小padding -->
            <RelativeLayout
                android:id="@+id/settings_reminder"
                style="@style/SettingsItem"
                android:padding="16dp">
            android:id="@+id/layout_user_info"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="12dp">
            <com.google.android.material.imageview.ShapeableImageView
                android:id="@+id/iv_avatar"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:scaleType="centerCrop"
                app:shapeAppearanceOverlay="@style/CircleImageView" />
            <TextView
                android:id="@+id/tv_nickname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_toEndOf="@id/iv_avatar"
                android:textColor="@android:color/black"
                android:textSize="18sp"
                android:textStyle="bold" />
            <TextView
                android:id="@+id/tv_user_id"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/tv_nickname"
                android:layout_marginStart="16dp"
                android:layout_marginTop="4dp"
                android:layout_toEndOf="@id/iv_avatar"
                android:textColor="@android:color/darker_gray"
                android:textSize="14sp" />
        </RelativeLayout>
        <!-- VIP会员卡片 - 减小margin和padding -->
        <androidx.cardview.widget.CardView
            android:id="@+id/card_vip"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginHorizontal="12dp"
            android:layout_marginVertical="8dp"
            app:cardCornerRadius="8dp"
            app:cardElevation="4dp">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/black"
                android:orientation="horizontal"
                android:padding="12dp">
                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:orientation="vertical">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="设置提醒"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
                        android:text="VIP会员"
                        android:textColor="#B8741A"
                        android:textSize="18sp"
                        android:textStyle="bold" />
                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/right_forward" />
            </RelativeLayout>
                    <TextView
                        android:id="@+id/tv_vip_expire"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="4dp"
                        android:textColor="#FFD700"
                        android:textSize="14sp" />
                </LinearLayout>
            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:layout_marginHorizontal="16dp"
                android:background="#E0E0E0" />
                <Button
                    android:id="@+id/btn_renew"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:backgroundTint="#7A441E"
                    android:text="立即续费"
                    android:textColor="#FFFFFF" />
            </LinearLayout>
        </androidx.cardview.widget.CardView>
            <!-- 设置其他提醒 暂时不需要 -->
<!--            <RelativeLayout-->
<!--                android:id="@+id/settings_reminder_other"-->
<!--                style="@style/SettingsItem"-->
<!--                android:padding="16dp">-->
<!--                <TextView-->
<!--                    android:layout_width="wrap_content"-->
<!--                    android:layout_height="wrap_content"-->
<!--                    android:layout_centerVertical="true"-->
<!--                    android:text="设置其他提醒"-->
<!--                    android:textColor="@android:color/black"-->
<!--                    android:textSize="16sp" />-->
<!--                <ImageView-->
<!--                    android:layout_width="24dp"-->
<!--                    android:layout_height="24dp"-->
<!--                    android:layout_alignParentEnd="true"-->
<!--                    android:layout_centerVertical="true"-->
<!--                    android:src="@drawable/right_forward" />-->
<!--            </RelativeLayout>-->
            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:layout_marginHorizontal="16dp"
                android:background="#E0E0E0" />
            <!-- 联系与反馈 -->
        <!-- 功能区域标题 - 调整margin -->
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:paddingHorizontal="16dp"
                android:paddingVertical="8dp"
            android:layout_columnSpan="4"
            android:layout_marginStart="12dp"
            android:layout_marginTop="12dp"
            android:layout_marginBottom="4dp"
            android:text="功能"
            android:textColor="#333333"
            android:textSize="15sp"
            android:textStyle="bold" />
        <!-- 功能图标网格 - 减小padding和调整间距 -->
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnCount="4"
            android:paddingHorizontal="8dp"
            android:paddingVertical="4dp">
            <!-- 设置提醒 -->
            <LinearLayout
                android:id="@+id/layout_reminder"
                style="@style/FunctionIconStyle">
                <ImageView
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_set_reminder" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="设置提醒" />
            </LinearLayout>
            <!-- 待办 -->
            <LinearLayout
                android:id="@+id/layout_todo"
                style="@style/FunctionIconStyle">
                <ImageView
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_wait_todo" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="待办" />
            </LinearLayout>
            <!-- 好友邀请 -->
            <LinearLayout
                android:id="@+id/layout_invite"
                style="@style/FunctionIconStyle">
                <ImageView
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_friend_invitation" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="好友邀请" />
            </LinearLayout>
            <!-- AI助手 -->
            <LinearLayout
                android:id="@+id/layout_ai"
                style="@style/FunctionIconStyle">
                <ImageView
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_ai_assistant" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="AI助手" />
            </LinearLayout>
            <!-- 离线模式 -->
            <LinearLayout
                android:id="@+id/layout_offline"
                style="@style/FunctionIconStyle">
                <ImageView
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_offline_mode" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="离线模式" />
            </LinearLayout>
            <!-- 联系与反馈标题 - 调整margin -->
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_columnSpan="4"
                android:layout_marginStart="12dp"
                android:layout_marginTop="12dp"
                android:layout_marginBottom="4dp"
                android:text="联系与反馈"
                android:textColor="@android:color/darker_gray"
                android:textSize="14sp"
                android:textColor="#333333"
                android:textSize="15sp"
                android:textStyle="bold" />
            <!-- 关于小红书 -->
            <RelativeLayout
                android:id="@+id/about_app"
                style="@style/SettingsItem"
                android:padding="16dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="关于小红书"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
            <LinearLayout
                android:id="@+id/layout_about"
                style="@style/FunctionIconStyle">
                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/right_forward" />
            </RelativeLayout>
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_xiaohongshu" />
            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:layout_marginHorizontal="16dp"
                android:background="#E0E0E0" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="关于小红书" />
            </LinearLayout>
            <!-- 邮件联系 -->
            <RelativeLayout
                android:id="@+id/email_contact"
                style="@style/SettingsItem"
                android:padding="16dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="邮件联系"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
            <LinearLayout
                android:id="@+id/layout_email"
                style="@style/FunctionIconStyle">
                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/right_forward" />
            </RelativeLayout>
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_email" />
            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:layout_marginHorizontal="16dp"
                android:background="#E0E0E0" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="邮件联系" />
            </LinearLayout>
            <!-- 意见与反馈 -->
            <RelativeLayout
                android:id="@+id/feedback"
                style="@style/SettingsItem"
                android:padding="16dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="意见与反馈"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
            <LinearLayout
                android:id="@+id/layout_feedback"
                style="@style/FunctionIconStyle">
                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/right_forward" />
            </RelativeLayout>
            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:layout_marginHorizontal="16dp"
                android:background="#E0E0E0" />
            <!-- 分享给好友 -->
            <RelativeLayout
                android:id="@+id/share_to_friends"
                style="@style/SettingsItem"
                android:padding="16dp">
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_feedback" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="分享给好友"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
                    style="@style/FunctionTextStyle"
                    android:text="意见与反馈" />
            </LinearLayout>
                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/right_forward" />
            </RelativeLayout>
            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:layout_marginHorizontal="16dp"
                android:background="#E0E0E0" />
            <!-- 其他区域标题 -->
            <!-- 其他标题 - 调整margin -->
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:paddingHorizontal="16dp"
                android:paddingVertical="8dp"
                android:layout_columnSpan="4"
                android:layout_marginStart="12dp"
                android:layout_marginTop="12dp"
                android:layout_marginBottom="4dp"
                android:text="其他"
                android:textColor="@android:color/darker_gray"
                android:textSize="14sp"
                android:textColor="#333333"
                android:textSize="15sp"
                android:textStyle="bold" />
            <!-- 隐私协议 -->
            <RelativeLayout
                android:id="@+id/privacy_policy"
                style="@style/SettingsItem"
                android:padding="16dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="隐私协议"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
            <LinearLayout
                android:id="@+id/layout_privacy"
                style="@style/FunctionIconStyle">
                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/right_forward" />
            </RelativeLayout>
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_privacy" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="隐私协议" />
            </LinearLayout>
            <!-- 使用教程 -->
            <LinearLayout
                android:id="@+id/layout_tutorial"
                style="@style/FunctionIconStyle">
                <ImageView
                    style="@style/FunctionImageStyle"
                    android:src="@drawable/me_tutorial" />
                <TextView
                    style="@style/FunctionTextStyle"
                    android:text="使用教程" />
            </LinearLayout>
        </GridLayout>
        <!-- 底部间距缩小 -->
            <View
                android:layout_width="match_parent"
                android:layout_height="0.5dp"
                android:layout_marginHorizontal="16dp"
                android:background="#E0E0E0" />
            <!-- 如何使用 -->
            <RelativeLayout
                android:id="@+id/how_to_use"
                style="@style/SettingsItem"
                android:padding="16dp">
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:text="如何使用"
                    android:textColor="@android:color/black"
                    android:textSize="16sp" />
                <ImageView
                    android:layout_width="24dp"
                    android:layout_height="24dp"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:src="@drawable/right_forward" />
            </RelativeLayout>
        </LinearLayout>
            android:layout_height="8dp" />
    </LinearLayout>
</ScrollView>
app/src/main/res/values/styles.xml
@@ -17,4 +17,33 @@
        <item name="android:background">@color/black_overlay</item>
        <item name="android:buttonBarStyle">?android:attr/buttonBarStyle</item>
    </style>
    <!-- 功能图标样式 -->
    <style name="FunctionIconStyle">
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_columnWeight">1</item>
        <item name="android:gravity">center</item>
        <item name="android:orientation">vertical</item>
        <item name="android:padding">8dp</item>
    </style>
    <style name="FunctionImageStyle">
        <item name="android:layout_width">50dp</item>
        <item name="android:layout_height">50dp</item>
        <item name="android:padding">6dp</item>
    </style>
    <style name="FunctionTextStyle">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_marginTop">2dp</item>
        <item name="android:textSize">11sp</item>
        <item name="android:textColor">@android:color/black</item>
    </style>
    <style name="CircleImageView">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">50%</item>
    </style>
</resources>