| | |
| | | android:name=".activity.ContentDetailActivity" |
| | | android:theme="@style/Theme.ContentDetail" |
| | | android:exported="false" /> |
| | | |
| | | <activity |
| | | android:name=".ui.profile.EditProfileActivity" |
| | | android:exported="false"/> |
| | | </application> |
| | | |
| | | </manifest> |
| | |
| | | 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 |
| | |
| | | return try { |
| | | // 从网络获取配置 |
| | | val response = apiService.getKeywords() |
| | | if (response.status == 1) { |
| | | if (response.code == "0") { |
| | | // 保存到本地数据库作为缓存 |
| | | saveToLocal(response.data) |
| | | keywordDao.getAllKeywords() |
对比新文件 |
| | |
| | | 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 |
| | | ) |
| | |
| | | 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 |
| | | |
| | | /** |
| | |
| | | |
| | | @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() |
| | |
| | | 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 |
| | |
| | | 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() { |
| | | |
| | |
| | | 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, |
| | |
| | | |
| | | 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() |
| | | } |
| | | } |
| | | |
| | |
| | | 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 |
对比新文件 |
| | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | init { |
| | | throw UnsupportedOperationException("u can't instantiate me...") |
| | | throw UnsupportedOperationException("u can't instantiate drawable-me...") |
| | | } |
| | | } |
对比新文件 |
| | |
| | | <?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> |
对比新文件 |
| | |
| | | <?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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <?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> |
对比新文件 |
| | |
| | | <?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> |
| | |
| | | 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="32dp" |
| | | android:scaleType="centerCrop" /> |
| | | |
| | | <!-- 用户信息区域 - 减小padding --> |
| | | <RelativeLayout |
| | | android:id="@+id/layout_user_info" |
| | | 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:padding="12dp"> |
| | | |
| | | <!-- 功能区标题 --> |
| | | <TextView |
| | | <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_marginTop="16dp" |
| | | android:paddingHorizontal="16dp" |
| | | android:paddingVertical="8dp" |
| | | android:text="功能" |
| | | android:textColor="@android:color/darker_gray" |
| | | android:textSize="14sp" |
| | | android:textStyle="bold" /> |
| | | 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:orientation="vertical"> |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:background="@android:color/black" |
| | | android:orientation="horizontal" |
| | | android:padding="12dp"> |
| | | |
| | | <!-- 设置提醒 --> |
| | | <RelativeLayout |
| | | android:id="@+id/settings_reminder" |
| | | style="@style/SettingsItem" |
| | | android:padding="16dp"> |
| | | <LinearLayout |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:layout_weight="1" |
| | | android:orientation="vertical"> |
| | | |
| | | <TextView |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:text="VIP会员" |
| | | android:textColor="#B8741A" |
| | | android:textSize="18sp" |
| | | android:textStyle="bold" /> |
| | | |
| | | <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> |
| | | |
| | | <Button |
| | | android:id="@+id/btn_renew" |
| | | 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:backgroundTint="#7A441E" |
| | | android:text="立即续费" |
| | | android:textColor="#FFFFFF" /> |
| | | </LinearLayout> |
| | | </androidx.cardview.widget.CardView> |
| | | |
| | | <!-- 功能区域标题 - 调整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="#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 |
| | | 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_set_reminder" /> |
| | | |
| | | <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/settings_reminder_other"--> |
| | | <!-- style="@style/SettingsItem"--> |
| | | <!-- android:padding="16dp">--> |
| | | <!-- 待办 --> |
| | | <LinearLayout |
| | | android:id="@+id/layout_todo" |
| | | style="@style/FunctionIconStyle"> |
| | | |
| | | <!-- <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 |
| | | style="@style/FunctionImageStyle" |
| | | android:src="@drawable/me_wait_todo" /> |
| | | |
| | | <!-- <ImageView--> |
| | | <!-- android:layout_width="24dp"--> |
| | | <!-- android:layout_height="24dp"--> |
| | | <!-- android:layout_alignParentEnd="true"--> |
| | | <!-- android:layout_centerVertical="true"--> |
| | | <!-- android:src="@drawable/right_forward" />--> |
| | | <!-- </RelativeLayout>--> |
| | | <TextView |
| | | style="@style/FunctionTextStyle" |
| | | android:text="待办" /> |
| | | </LinearLayout> |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0.5dp" |
| | | android:layout_marginHorizontal="16dp" |
| | | android:background="#E0E0E0" /> |
| | | <!-- 好友邀请 --> |
| | | <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_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/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> |
| | | |
| | | <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"> |
| | | style="@style/FunctionImageStyle" |
| | | android:src="@drawable/me_privacy" /> |
| | | |
| | | <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> |
| | | |
| | | <!-- 使用教程 --> |
| | | <LinearLayout |
| | | android:id="@+id/layout_tutorial" |
| | | 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_tutorial" /> |
| | | |
| | | </LinearLayout> |
| | | <TextView |
| | | style="@style/FunctionTextStyle" |
| | | android:text="使用教程" /> |
| | | </LinearLayout> |
| | | |
| | | </GridLayout> |
| | | |
| | | <!-- 底部间距缩小 --> |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="8dp" /> |
| | | |
| | | </LinearLayout> |
| | | </ScrollView> |
| | |
| | | <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> |