tj
2025-04-01 a633841f1d282244e42d45a84aca55533df34229
1.vip续费页面-数据统计及跳转
已修改3个文件
已添加5个文件
143 ■■■■■ 文件已修改
app/src/main/java/com/example/firstapp/ui/dashboard/DashboardFragment.kt 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/overlay_black_background.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_dashboard.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap/avatar_default.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap/overlay.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap/overlay2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/mipmap/vip_crown.png 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/firstapp/ui/dashboard/DashboardFragment.kt
@@ -21,9 +21,18 @@
import java.util.*
import java.text.SimpleDateFormat
import android.graphics.Color
import android.widget.Button
import android.widget.GridLayout
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.lifecycle.lifecycleScope
import com.bumptech.glide.Glide
import com.example.firstapp.database.response.UserInfo
import com.example.firstapp.database.service.RetrofitClient
import com.example.firstapp.model.DailyStat
import com.example.firstapp.utils.PreferencesManager
import com.github.mikephil.charting.components.YAxis
import kotlinx.coroutines.launch
class DashboardFragment : Fragment() {
@@ -35,6 +44,9 @@
    private lateinit var barChart: BarChart
    private lateinit var pieChart: PieChart
    private lateinit var heatmapView: View
    private var currentUserInfo: UserInfo? = null // 确保使用你的实际数据类
    enum class DateType {
        DAY, WEEK, MONTH, YEAR
    }
@@ -49,6 +61,12 @@
        return binding.root
    }
    override fun onResume() {
        super.onResume()
        // 重新加载用户信息
        loadUserInfo()
    }
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
@@ -61,7 +79,28 @@
        setupView(view)
        updateDateDisplay()
        loadPackages()
        // 遮罩层
        loadUserInfo()
        // 遮罩层点击时间
        binding.viewOverlay.setOnClickListener {
            // 跳转到vipActivity
            val intent = android.content.Intent(requireContext(), com.example.firstapp.activity.VipActivity::class.java)
            startActivity(intent)
        }
    }
    private fun showOverlay() {
        binding.viewOverlay.visibility = View.VISIBLE
        binding.overlayContent.visibility = View.VISIBLE
    }
    private fun hiddleOverlay() {
        binding.viewOverlay.visibility = View.GONE
        binding.overlayContent.visibility = View.GONE
    }
    private fun setupRecyclerView() {
        binding.recyclerPackages.apply {
@@ -554,4 +593,35 @@
        super.onDestroyView()
        _binding = null
    }
    private fun loadUserInfo() {
        lifecycleScope.launch {
            try {
                // 从本地获取保存的手机号
                val savedPhone = PreferencesManager.getPhone()
                if (savedPhone.isNullOrEmpty()) {
                    Toast.makeText(context, "用户未登录", Toast.LENGTH_SHORT).show()
                    return@launch
                }
                val response = RetrofitClient.apiService.getUserInfo(savedPhone)
                if (response.code == "0" && response.data != null) {
                    // 保存用户信息
                    currentUserInfo = response.data
                    val userInfo = response.data
                    if(userInfo.isMember){
                        hiddleOverlay()
                    }else{
                        // 显示遮罩层
                        showOverlay()
                    }
                }
            } catch (e: Exception) {
                e.printStackTrace()
                Toast.makeText(context, "获取用户信息失败", Toast.LENGTH_SHORT).show()
            }
        }
    }
}
app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt
@@ -54,7 +54,8 @@
        Glide.with(this)
            .load(viewModel.cover)
            .transform(RoundedCorners(100))  // 设置圆角
            .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
//            .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
            .error(R.mipmap.avatar_default)
            .listener(object : RequestListener<Drawable> {
                override fun onResourceReady(
                    resource: Drawable?,
@@ -85,7 +86,8 @@
        Glide.with(this)
            .load(viewModel.vipCover)
            .transform(RoundedCorners(100))  // 设置圆角
            .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
//            .error(R.drawable.error_placeholder) // 如果加载失败,显示占位图
            .error(R.mipmap.vip_no)
            .listener(object : RequestListener<Drawable> {
                override fun onResourceReady(
                    resource: Drawable?,
app/src/main/res/drawable/overlay_black_background.xml
对比新文件
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 圆角 10dp -->
    <corners android:radius="100dp" />
    <!-- 背景色:黑色 -->
<!--    <solid android:color="#FFFFFF" />-->
    <solid android:color="#000000" />
    <!-- 内边距 -->
    <padding android:left="10dp"
        android:top="10dp"
        android:right="10dp"
        android:bottom="10dp"/>
    <stroke android:width="0dp" android:color="#FFFFFF"/>
</shape>
app/src/main/res/layout/fragment_dashboard.xml
@@ -159,4 +159,54 @@
        </ViewFlipper>
    </androidx.core.widget.NestedScrollView>
    <!-- 🔹 遮罩层 -->
    <View
        android:id="@+id/view_overlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@mipmap/overlay2"
        android:elevation="10dp"
        android:visibility="gone"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />
    <!-- 🔹 遮罩层上的按钮 -->
    <!-- 🔹 遮罩层上的内容容器(LinearLayout) -->
    <LinearLayout
        android:id="@+id/overlay_content"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        android:padding="10dp"
        android:background="@drawable/overlay_black_background"
        android:elevation="20dp"
        android:translationZ="20dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent">
        <ImageView
            android:id="@+id/overlay_content_vip_image"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:scaleType="centerCrop"
            android:src="@mipmap/vip_crown"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <!-- 🔹 示例内容:标题 -->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="免费查看统计数据"
            android:textSize="18sp"
            android:textColor="#EEBC93" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/mipmap/avatar_default.png
app/src/main/res/mipmap/overlay.png
app/src/main/res/mipmap/overlay2.jpg
app/src/main/res/mipmap/vip_crown.png