ViewPager实现Gallery画廊效果——仿慕课网app-求职路线计划-效果(一)

Android ViewPager画廊效果详解及实例 Android ViewPager 画廊效果 从上面的图片可以看到,当添加多张图片的时候,能够在下方形成一个画廊的效果,我们左右拉动图片来看我们添加进去的图片,效果是不是好了很多呢?下面来看看怎么实现吧! 上面的效果类似Android里面ViewPage的效果,但是跟ViewPager有所不同,ViewPager每次只能显示一张图片。 其实我们是利用到了View的clipChildren属性,我们在这里要把ViewPager以及它的父窗体都设置为false,如下: android:clipChildren=”false” 因为如果clipChildren属性设置为true,就表明我们要将ch 立即下载

效果图:

这里写图片描述

大体上就是这个样子,可能不太清楚 但是大家知道是什么效果就好啦~
(PS: 图中没有加高斯模糊图,后边 我会加上)

下面来分析一下这个布局

底层用一个ImageView 上层用一个定制的ViewPager然后用FramLayout来包裹

代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:app="http://schemas.android.com/apk/res-auto"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:orientation="vertical">

    <ImageView
        android:id="@+id/iv_bg_pic"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/expert_list_bg_default"/>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipChildren="false">

        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal"
            android:text="求职路线计划"
            android:paddingTop="60dp"
            android:paddingBottom="45dp"
            android:textColor="#fff"
            android:textSize="18sp"/>

        <android.support.v4.view.ViewPager
            android:layout_below="@+id/tv_title"
            android:id="@+id/vp_pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="45dp"
            android:layout_marginRight="45dp"
            android:layout_marginBottom="30dp"
            android:clipChildren="false"/>
    </RelativeLayout>

</FrameLayout>
需要注意:
  • 一屏显示多个ViewPager的子Item 主要是
android:clipChildren="false"

RelativeLayout和ViewPager都要设置否则没有效果。
关于这个问题详情见我另一篇博客
http://blog.youkuaiyun.com/codenoodles/article/details/50991793

那么下步就要写一下viewpager对应的item

先上代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:background="@drawable/shape_bg_item">

    <!-- 设置参照物 -->
    <View
        android:id="@+id/strut"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_centerVertical="true"/>

    <com.upc.viewpagerGallery.View.RoundImageView
        android:id="@+id/iv_title_pic"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignBottom="@+id/strut"
        android:layout_alignParentTop="true"
        android:src="@drawable/expert_default"
        app:type="round"/>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignTop="@+id/strut"
        android:layout_below="@+id/iv_title_pic"
        android:background="#fff"
        android:orientation="vertical"
        android:paddingTop="45dp">

        <TextView
            android:id="@+id/tv_exper_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:ellipsize="end"
            android:paddingBottom="30dp"
            android:singleLine="true"
            android:text="Web前端工程师"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            android:typeface="sans"/>

        <View
            android:id="@+id/v_line"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_below="@+id/tv_exper_name"
            android:background="#a000"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/v_line"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:orientation="horizontal"
            android:paddingTop="60dp">

            <TextView
                android:id="@+id/tv_num"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="388"
                android:textColor="#a000"
                android:textSize="12sp"/>

            <TextView
                android:id="@+id/tv_string"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="人学习"
                android:textColor="#a000"
                android:textSize="12sp"/>
        </LinearLayout>

    </RelativeLayout>
</RelativeLayout>
需要注意的几点:
  • 首先一个ImageView和底部的RelativeLayout平分布局空间。不要问我为啥不直接用LinearLayout的layout_weight我在前面讲圆角布局的时候提到过,没看过的朋友可以先去看一下
    http://blog.youkuaiyun.com/codenoodles/article/details/50990646
    当然,咱们在item里也用到了圆角布局,还不会写的同学也可以先去上边的链接看一下。

  • 显示职业的TextView和底部的View横线左右对齐,我的处理方式是在activity中根据textView的width动态设置View横线的宽度,后边会讲到。

  • 学习人数的textview和显示”人学习” 的TextView整体居中问题。我用的一个LinearLayout包裹一下。(不要问为啥不用一个TextView,因为实际项目中肯定是从服务器过去数据的)

Activity逻辑

package com.upc.viewpagerGallery.Activity;

import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.upc.viewpagerGallery.R;

import java.util.LinkedList;

/**
 * Created by Explorer on 2016/3/27.
 */
public class ViewPagerGalleryActivity extends Activity {


    private ViewPager mViewPager;
    private ImageView ivBgPic;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            setTranslucentStatus(true);
            SystemBarTintManager tintManager = new SystemBarTintManager(this);
            tintManager.setStatusBarTintEnabled(true);
            tintManager.setStatusBarTintResource(R.color.statusbar_color);//通知栏所需颜色
        }

        setContentView(R.layout.main_activity);
        initViews();
    }

    @TargetApi(19)
    private void setTranslucentStatus(boolean on) {
        Window win = getWindow();
        WindowManager.LayoutParams winParams = win.getAttributes();
        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
        if (on) {
            winParams.flags |= bits;
        } else {
            winParams.flags &= ~bits;
        }
        win.setAttributes(winParams);
    }

    private void initViews() {
        mViewPager = (ViewPager) findViewById(R.id.vp_pager);
        ivBgPic = (ImageView) findViewById(R.id.iv_bg_pic);
        mViewPager.setOffscreenPageLimit(3);
        mViewPager.setPageTransformer(true, new com.upc.viewpagerGallery.View.ZoomOutPageTransformer());
        mViewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.page_margin));

        MyViewPagerAdapter mAdapter = new MyViewPagerAdapter();
        mViewPager.setAdapter(mAdapter);
        mViewPager.setOffscreenPageLimit(mAdapter.getCount());
    }




    /**
     * Viewpager数据适配器
     */
    class MyViewPagerAdapter extends PagerAdapter {

        //view复用
        private LinkedList<View> mViewCache = null;

        public MyViewPagerAdapter() {
            mViewCache = new LinkedList<>();
        }

        @Override
        public int getCount() {
            return 6;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }


        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ViewHolder holder = null;
            View convertView = null;
            if (mViewCache.size() == 0) {
                convertView = View.inflate(ViewPagerGalleryActivity.this, R.layout.item_viewpager, null);
                holder = new ViewHolder();
                holder.ivPic = (ImageView) convertView.findViewById(R.id.iv_title_pic);
                holder.tvName = (TextView) convertView.findViewById(R.id.tv_exper_name);
                holder.tvNum = (TextView) convertView.findViewById(R.id.tv_num);
                holder.vLine = convertView.findViewById(R.id.v_line);

                convertView.setTag(holder);
            } else {
                convertView = mViewCache.removeFirst();
                holder = (ViewHolder) convertView.getTag();
            }


            holder.ivPic.setImageResource(R.drawable.expert_default);
            holder.tvName.setText("Android工程师");
            holder.tvNum.setText("39179");

            /* 动态设置view 横线 让它和上方的文字等宽*/
            holder.tvName.measure(0, 0);//要先measure一下,否则获得的宽度是0
            int measuredWidth = holder.tvName.getMeasuredWidth();
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(measuredWidth, 1);
            params.addRule(RelativeLayout.BELOW, R.id.tv_exper_name);
            params.addRule(RelativeLayout.CENTER_HORIZONTAL);

            holder.vLine.setLayoutParams(params);


            container.addView(convertView);
            return convertView;
        }


        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
            mViewCache.add((View) object);
        }

        //View复用
        public final class ViewHolder {
            public TextView tvName;
            public TextView tvNum;
            public ImageView ivPic;
            public View vLine;
        }
    }
}
说明
  • 用到了沉浸式状态栏,这里不再详细说明,有问题的可以看我另一篇讲沉浸状态栏的博文
    http://blog.youkuaiyun.com/codenoodles/article/details/50636425

  • 处理前边说的TextView和View横线等宽的问题,动态设置View的宽度。(实际项目中文字长度肯定是不一样的,所以要这么做)

  • viewpage数据源。我这里写死了,大家用的话可以自己写数据源。
    Adapter中用到了view复用,之后一篇博文我会专门讲。也很简单,大家应该一看就明白。

  • viewpager的切换动画。详情见
    http://blog.youkuaiyun.com/codenoodles/article/details/50991961

现在效果基本上和开始的效果图一样啦~~
先写到这里,之后我做一些调整,加上高斯模糊图再传demo 上来。

考虑了一下,还是先发一个Demo吧

http://download.youkuaiyun.com/detail/codenoodles/9473772

有问题的欢迎留言。推荐一下”Android开发经验交流群”(454430053)(1群满了 请加【Android开发经验交流2群(537532956)】),欢迎大家就加入

Error relaunching VirtualBox VM process:5错误解决 前几天在重新使用VirtualBox的时候出现了一个挺恶心的错误,如图 百度了好久没有找到合适的解决方法。功夫不负有心人,在查阅了vb相关论坛时发现了大牛对此问题的诸多解决方案。下面我把此论坛的内容总结一下,希望对大家有帮助。 论坛链接:Diagnosing VirtualBox Hardening Issues 时间不足的小伙伴可以直接看 解决方法 造成这个错误的主要原因是,windows操作系统与oracle vb的不兼容。有两个方面,一是非官方windows系统中包含了一些没有签名的d 阅读详情

相关推荐

PADS安装教程(超详细)

声明:个人实践 一、工具准备 pads9.5完整破解版百度网盘提取码【wjx9】 链接:https://pan.baidu.com/s/1pIP6BJO435ssmF7Hjwyz8A 提取码:wjx9 安装环境:win10 64位 二、开始解压安装 关闭杀毒,exe以管理员身份运行 点击【skip】,不然又得licese 点击【agree】 点击【modify】 设置安装的工具、路径及工程路径 设置完成后,开始【install】 在之后注册。 将Crack复制到PADS安装目录

qq_42057393的博客 5万+

viewPager设置画廊效果

是一个在布局文件中使用的属性,用于控制子视图是否可以超出父视图的边界显示。(子view可以超出父view显示,默认。

qq_34024778的博客 527

超越图灵机——论人工智能实现的可能性(一)

超越图灵机——论人工智能实现的可能性(一)我认为人工智能是可以实现到逻辑思维这一步的,因为逻辑思维可以完全用字符串来表示,图灵机可以把任意单元置成任意值,在这一点上是完备的,这就足以描述逻辑思维了,所以用图灵机完全可以实现到逻辑思维。当然图灵机会受到哥德尔不完备性的制约,但是逻辑系统也会受到同样的制约,所以我认为完全可以用图灵机实现逻辑思维。那么逻辑思维的本质机理与图灵机是什么关系?逻辑思

太极语言 1万+

ViewPager实现Gallery效果

前言 前面已经实现了ViewPager横向轮播功能,但轮播效果通常都只是针对顶部的条幅形状的图片,有时候希望能够展示大图片,就需要ViewPager能够像画廊依次展示大图,最好还能够为切换增加动画效果,提升用户体验,现在来探究一下如何实现这种效果。 实现效果 实现接口 ViewPager内部会对生成的界面对象做缓存处理,缓存默认情况下是当前展示界面和左右两个界面,设置的接口setO

xingzhong128的博客 863

AI Agent Harness Engineering 监控与日志系统搭建

在生成式AI(Generative AI)与大语言模型(LLM)普及的今天,AI Agent(自主智能代理)已经成为了继「LLM API调用」「单轮/多轮对话」之后的第三代AI应用范式——Agent能够自主感知环境、制定多步决策、调用外部工具(Web搜索、数据库、RAG检索、企业系统API等)、执行复杂任务并优化自身策略。然而,随着Agent应用从Demo原型快速落地到企业生产环境,一系列与工程化落地强绑定的可观测性(Observability)问题正在成为Agent项目成功上线、稳定运行的最大瓶颈。

AI开发架构师 184

手把手拆解UCIe协议层:从Raw Mode到Flit Mode,数据包到底经历了什么?

本文深入解析UCIe协议层的数据包处理机制,从Raw Mode到Flit Mode的三大变体(Standard 256B、68B-Enhanced、Latency-Optimized),详细揭示数据包在不同模式下的封装与转换过程。通过工程师视角,展示协议层如何实现多模式动态切换、错误恢复及与D2D Adapter的协同设计,为芯片级互连技术提供实践指导。

weixin_28728495的博客 238

Android中ViewPager常用功能7----画廊效果

效果图 build.gradle引入依赖库: compile 'com.github.bumptech.glide:glide:3.7.0' 主清单 添加权限 uses-permission android:name="android.permission.INTERNET" /> MainActivity中 package com.example.viewpa

翟浩浩Android专栏 493

【后量子密码】SPHINCS+ 算法(二):签名与验签(附源码分析)

本节介绍SPHINCS+ 算法的密钥生成、签名与验签。nnn:安全参数;www:Winternitz参数,WOTS+签名分解的基底;hhh:超树的高度;ddd:超树中子树的层数;kkk:FORS 树的数量;ttt:FORS 树的叶子节点数。

听雨草堂 4679

ViewPager实现Gallery画廊效果——仿慕课网app-求职路线计划-效果(二)

今晚给之前的写的收个尾 http://blog.youkuaiyun.com/codenoodles/article/details/50992113 前边没有看的可以先看一下效果。之前写的没有背景的模糊图片效果,也没有随滑动切换背景图的效果。这里一并加上:首先我修改了主布局文件: 原来的View背景,换成了一个不可滑动的ViewPager 关于ViewPager怎么禁止滑动请看: http://bl

漫步的博客 1284

172、摄像头振动与异响分析:VCM 共振、OIS 机械噪声的用户体验改善

摘要: 本文深入探讨了手机摄像头模组中VCM(音圈马达)与OIS(光学防抖)系统产生的振动异响问题及其解决方案。通过实际案例,分析了VCM弹簧片共振、OIS悬丝机械噪声以及系统级共振的成因,提出了硬件改进(如弹簧片厚度调整、阻尼材料应用)、驱动优化(PWM频率微调、软启动配置)和算法避让等综合解决策略。特别强调了量产阶段隐蔽性问题的排查技巧,包括扫频测试、机械阻尼处理和用户体验优化方法(如频率掩蔽)。作者建议工程师避免过度依赖仿真数据,重视实物测试,并与声学团队协作,以解决这类"玄学"问题,提升用户感知体验

sundong_81的博客 126

摇骰子、抽奖转盘酒桌游戏 人生重启模拟器小程序源码分享-开通流量主躺着赚钱

摇骰子、抽奖转盘酒桌游戏 人生重启模拟器小程序源码分享-开通流量主躺着赚钱

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1650

终极指南:远程工作员工福利的完整解决方案

GitHub 加速计划(re / remote-working)是一个专注于收集整理远程工作相关资料的开源项目,为远程工作者和团队提供了丰富的资源支持。随着远程工作模式的普及,员工福利的设计与实施成为企业吸引和保留人才的关键。本文将从福利体系构建、工具支持到资源获取,全面解析远程工作员工福利的完整解决方案。 ## 远程工作福利体系的核心要素 远程工作打破了传统办公的时空限制,其福利体系也需要适

gitblog_00007的博客 572

手把手教你完成YOLOv11分类识别界面搭建,使用Qt6设计YOLOv11分类识别系统,前台系统+后台管理系统开发实战,全网最详细教程

本项目结合YOLOv11分类识别算法和PySide6框架,开发了一套图形化分类识别系统。系统支持图片、视频和摄像头实时分类检测,并具备完善的用户管理功能,包括登录验证、个人信息修改等模块。最新版本新增了管理员后台管理系统,包含用户管理、权限控制等功能。系统采用MySQL数据库存储用户数据,界面设计采用QtDesigner完成,实现了高效的目标分类与友好的交互体验。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1050

viewpager实现画廊(一屏多个Fragment)效果

在使用Gallery的时候大家会发现有几个问题(1). 无法控制每次滑动只滑动一页, (2). Gallery默认第一个item居中,无法修改它与Gallery的左间距。ViewPager可以方便的解决上面两个问题,但默认却无法在屏幕上显示多个Fragment。 下面介绍如何利用ViewPager及android:clipChildren属性解决这个问题。 1、定义xml

梵依然的专栏 1264

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ViewPage实现类似Gallery效果以及2个ViewPage联动

ViewPage实现类似Gallery效果以及2个ViewPage联动

u013790519的专栏 924

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

实现类似猫眼影片详情页电影海报滚动效果(ViewPager 两侧显示相邻item)

本文参考(ViewPager画廊效果)仿淘票票影院影片选择 这种实现方法比较简单,但是并不能像是淘票票、猫眼的电影画廊那样,一下子滚动多个item,因为ViewPager本质上就是一次只能划过一个item(此外这种方法,必须设置所有的条目作为缓存mViewPager.setOffscreenPageLimit(TOTAL_COUNT),这样性能低) 一次划过多个item,需要使用

Android_Study_OK的博客 3743

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ViewPager2画廊效果

fun Int.dpToPx(displayMetrics: DisplayMetrics): Int = (this * displayMetrics.density).toInt() fun Int.pxToDp(displayMetrics: DisplayMetrics): Int = (this / displayMetrics.density).toInt() 使用 10.dpToPx(context.resources.displayMetrics)

The blog of 优快云 in 杨天福 7638

Android修行手册 - 使用ViewPager2实现画廊效果

目前我们看似完成了期望效果,但目前有小伙伴应该发现因为我们设置了ViewPager的宽度是没有填满根布局的,过渡滑动的效果很影响美感,我们第一反应肯定实在xml中加入android:overScrollMode=“never”

空名先生 3703

利用ViewPager实现画廊Gallery效果

1 需求确认 2利用viewpager实现画廊效果 viewpager的继承关系 使用ViewGroup的setClipChildrenboolean clipChildren方法 使用viewpager的setPageTransformer方法实现vp页面切换效果 3实战代码 首先是父级布局 viewpager需要显示的内容 实现画廊效果1、 需求确认最近做的一个小学的定制项目,谈需求的时候客户提

麻薯帅比的博客 1万+

利用ViewPager实现3D画廊效果及其图片加载优化

前言对于ViewPager,相信大家都已经很熟悉了,在各种切换场景比如Fragment切换、选项卡的切换或者顶部轮播图片等都可以用ViewPager去实现。那么本篇文章带来ViewPager的一种实现效果:3D画廊。

蓝天白云梦的csdn博客 5733

Android使用ViewPager+Gallery实现画廊

在 ViewPager 滑动到新的页面时,根据当前页面的位置,将 Gallery 选中的位置设为相应的位置,保证 Gallery 与 ViewPager 的选中位置一致。Gallery 的 OnItemSelectedListener 监听器,在用户选择某个位置时,将当前的 ViewPager 的位置设为所选择位置,实现了 Gallery 与 ViewPager 的联动效果。的适配器,用于将图片资源数据展示在 Gallery 控件中,实现图片列表的效果。方法移除并清空指定位置的 View,释放内存。

CPK119的博客 526

Android自定义弧形ViewPager

先上效果图 实现起来比较简单。 实现思路 自定义弧形View。如下所示。 圆和屏幕相交的地方就是我们所需要的弧形,当然也可以使用贝塞尔曲线绘制。 半径为测量布局宽度*2 绘制过程如下: @Override protected void onDraw(Canvas canvas) { canvas.drawCircle(mCustomWidth / 2, mCustomHeight ...

WormholeStack 3469

ViewPager实现画廊

1,普通样式 1,效果图 2,布局文件 clipChild被设置为true,需要在根布局和ViewPager中设为false. <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/ll_gallery_outer" xmlns:android="http://schemas.android.c

EleganceKing的博客 1042

Android开发学习之基于ViewPager实现Gallery画廊效果

通过我们前面的学习,我们知道ViewPager是可以做出近乎完美的滑动体验,回顾整个Android,我们发现Gallery具备同样的特点,于是我们大胆地猜想,Gallery是否和ViewPager之间有些关联呢?两者在功能上的类似和重叠,总会让我们对此充满好奇,我们开始思考:如果不借助Gallery,我们能否做出像Gallery一样的效果呢?答案是肯定的。那么,我们今天就来一起学习自己...

maozhuxigood 253
上一篇: ViewPager切换动画——PageTransformer
下一篇: ViewPager的view复用
Z漫步
博客等级 码龄12年 42粉丝 80原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值