Android开发之视图动画基础

Android Compose 实现View中的帧动画功能 阅读详情

Android的animation由四种类型组成


XML中 
alpha
渐变透明度动画效果

scale
渐变尺寸伸缩动画效果

translate
画面转换位置移动动画效果

rotate
画面转移旋转动画效果

JavaCode中 
AlphaAnimation
渐变透明度动画效果

ScaleAnimation
渐变尺寸伸缩动画效果

TranslateAnimation
画面转换位置移动动画效果

RotateAnimation
画面转移旋转动画效果


Android动画模式

Animation主要有两种动画模式:
一种是tweened animation(渐变动画) 
XML中
JavaCode

alpha
AlphaAnimation

scale
ScaleAnimation

一种是frame by frame(画面转换动画) 
XML中
JavaCode

translate
TranslateAnimation

rotate
RotateAnimation


如何在XML文件中定义动画

① 打开Eclipse,新建Android工程
② 在res目录中新建anim文件夹
③ 在anim目录中新建一个myanim.xml(注意文件名小写)
④ 加入XML的动画代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3.   <alpha/>
  4.   <scale/>
  5.   <translate/>
  6.   <rotate/>
  7. </set>
复制代码

Android动画解析--XML
<alpha>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >
  3. <alpha
  4. android:fromAlpha="0.1"
  5. android:toAlpha="1.0"
  6. android:duration="3000"
  7. /> 
  8. <!-- 透明度控制动画效果 alpha
  9.         浮点型值:
  10.             fromAlpha 属性为动画起始时透明度
  11.             toAlpha   属性为动画结束时透明度
  12.             说明: 
  13.                 0.0表示完全透明
  14.                 1.0表示完全不透明
  15.             以上值取0.0-1.0之间的float数据类型的数字
  16.         长整型值:
  17.             duration  属性为动画持续时间
  18.             说明:     
  19.                 时间以毫秒为单位
  20. -->
  21. </set>
复制代码

<scale>

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <set xmlns:android="http://schemas.android.com/apk/res/android">

  3.    <scale     
  4.           android:interpolator=
  5.                      "@android:anim/accelerate_decelerate_interpolator"
  6.           android:fromXScale="0.0"
  7.           android:toXScale="1.4"
  8.           android:fromYScale="0.0"
  9.           android:toYScale="1.4"
  10.           android:pivotX="50%"
  11.           android:pivotY="50%"
  12.           android:fillAfter="false"
  13.           android:duration="700" />
  14. </set>
  15. <!-- 尺寸伸缩动画效果 scale
  16.        属性:interpolator 指定一个动画的插入器
  17.         在我试验过程中,使用android.res.anim中的资源时候发现
  18.         有三种动画插入器:
  19.             accelerate_decelerate_interpolator  加速-减速 动画插入器
  20.             accelerate_interpolator        加速-动画插入器
  21.             decelerate_interpolator        减速- 动画插入器
  22.         其他的属于特定的动画效果
  23.       浮点型值
  24.             fromXScale 属性为动画起始时 X坐标上的伸缩尺寸    
  25.             toXScale   属性为动画结束时 X坐标上的伸缩尺寸     
  26.             fromYScale 属性为动画起始时Y坐标上的伸缩尺寸    
  27.             toYScale   属性为动画结束时Y坐标上的伸缩尺寸    
  28.             说明:
  29.                  以上四种属性值    
  30.                     0.0表示收缩到没有 
  31.                     1.0表示正常无伸缩     
  32.                     值小于1.0表示收缩  
  33.                     值大于1.0表示放大
  34.             pivotX     属性为动画相对于物件的X坐标的开始位置
  35.             pivotY     属性为动画相对于物件的Y坐标的开始位置
  36.             说明:
  37.                     以上两个属性值 从0%-100%中取值
  38.                     50%为物件的X或Y方向坐标上的中点位置
  39.         长整型值:
  40.             duration  属性为动画持续时间
  41.             说明:   时间以毫秒为单位
  42.         布尔型值:
  43.             fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
  44. -->
复制代码

<translate>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <translate
  4. android:fromXDelta="30"
  5. android:toXDelta="-80"
  6. android:fromYDelta="30"
  7. android:toYDelta="300"
  8. android:duration="2000"
  9. />
  10. <!-- translate 位置转移动画效果
  11.         整型值:
  12.             fromXDelta 属性为动画起始时 X坐标上的位置    
  13.             toXDelta   属性为动画结束时 X坐标上的位置
  14.             fromYDelta 属性为动画起始时 Y坐标上的位置
  15.             toYDelta   属性为动画结束时 Y坐标上的位置
  16.             注意:
  17.                      没有指定fromXType toXType fromYType toYType 时候,
  18.                      默认是以自己为相对参照物             
  19.         长整型值:
  20.             duration  属性为动画持续时间
  21.             说明:   时间以毫秒为单位-->
  22. </set>
复制代码

<rotate>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <rotate 
  4.         android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  5.         android:fromDegrees="0" 
  6.         android:toDegrees="+350"         
  7.         android:pivotX="50%" 
  8.         android:pivotY="50%"     
  9.         android:duration="3000" />  
  10. <!-- rotate 旋转动画效果
  11.        属性:interpolator 指定一个动画的插入器
  12.              在我试验过程中,使用android.res.anim中的资源时候发现
  13.              有三种动画插入器:
  14.                 accelerate_decelerate_interpolator   加速-减速 动画插入器
  15.                accelerate_interpolator               加速-动画插入器
  16.                 decelerate_interpolator               减速- 动画插入器
  17.              其他的属于特定的动画效果
  18.        浮点数型值:
  19.             fromDegrees 属性为动画起始时物件的角度    

  20.             toDegrees   属性为动画结束时物件旋转的角度 可以大于360度   
  21.             说明:
  22.                      当角度为负数——表示逆时针旋转
  23.                      当角度为正数——表示顺时针旋转              
  24.                      (负数from——to正数:顺时针旋转)   
  25.                      (负数from——to负数:逆时针旋转) 
  26.                      (正数from——to正数:顺时针旋转) 
  27.                      (正数from——to负数:逆时针旋转)       
  28.             pivotX     属性为动画相对于物件的X坐标的开始位置
  29.             pivotY     属性为动画相对于物件的Y坐标的开始位置
  30.             说明:        以上两个属性值 从0%-100%中取值
  31.                          50%为物件的X或Y方向坐标上的中点位置
  32.         长整型值:
  33.             duration  属性为动画持续时间
  34.             说明:       时间以毫秒为单位-->
  35. </set>
复制代码

如何使用XML中的动画效果

  1. public static Animation loadAnimation (Context context, int id) 
  2. //第一个参数Context为程序的上下文    
  3. //第二个参数id为动画XML文件的引用
  4. //例子:
  5. myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);
  6. //使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
复制代码

如何在Java代码中定义动画

  1. private Animation myAnimation_Alpha;
  2. private Animation myAnimation_Scale;
  3. private Animation myAnimation_Translate;
  4. private Animation myAnimation_Rotate;
  5.     //根据各自的构造方法来初始化一个实例对象
  6. myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
  7. myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
  8.              Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
  9. myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
  10. myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,
  11.                Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
复制代码

Android动画解析--JavaCode
AlphaAnimation
① AlphaAnimation类对象定义

  1. private AlphaAnimation myAnimation_Alpha;


  2. AlphaAnimation(float fromAlpha, float toAlpha) 
  3. //第一个参数fromAlpha为 动画开始时候透明度
  4. //第二个参数toAlpha为 动画结束时候透明度
  5. myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
  6. //说明: 
  7. //                0.0表示完全透明
  8. //                1.0表示完全不透明
  9. //     设置动画持续时间
  10. myAnimation_Alpha.setDuration(5000);
复制代码

ScaleAnimation

  1. private AlphaAnimation myAnimation_Alpha;

  2. ScaleAnimation(float fromX, float toX, float fromY, float toY,

  3.            int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 

  4. //第一个参数fromX为动画起始时 X坐标上的伸缩尺寸    

  5. //第二个参数toX为动画结束时 X坐标上的伸缩尺寸     

  6. //第三个参数fromY为动画起始时Y坐标上的伸缩尺寸    

  7. //第四个参数toY为动画结束时Y坐标上的伸缩尺寸  

  8. /*说明:

  9.                     以上四种属性值    

  10.                     0.0表示收缩到没有 

  11.                     1.0表示正常无伸缩     

  12.                     值小于1.0表示收缩  

  13.                     值大于1.0表示放大

  14. */

  15. //第五个参数pivotXType为动画在X轴相对于物件位置类型  

  16. //第六个参数pivotXValue为动画相对于物件的X坐标的开始位置

  17. //第七个参数pivotXType为动画在Y轴相对于物件位置类型   

  18. //第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置

  19. myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,

  20.              Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

  21. //设置动画持续时间


  22. myAnimation_Scale.setDuration(700);
复制代码

TranslateAnimation

  1. private AlphaAnimation myAnimation_Alpha;


  2. TranslateAnimation(float fromXDelta, float toXDelta,

  3.                        float fromYDelta, float toYDelta) 

  4. //第一个参数fromXDelta为动画起始时 X坐标上的移动位置    

  5. //第二个参数toXDelta为动画结束时 X坐标上的移动位置      

  6. //第三个参数fromYDelta为动画起始时Y坐标上的移动位置     

  7. //第四个参数toYDelta为动画结束时Y坐标上的移动位置 
  8. // 设置动画持续时间


  9. myAnimation_Translate.setDuration(2000);
复制代码

RotateAnimation

  1. private AlphaAnimation myAnimation_Alpha;

  2. RotateAnimation(float fromDegrees, float toDegrees, 

  3.             int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

  4. //第一个参数fromDegrees为动画起始时的旋转角度    

  5. //第二个参数toDegrees为动画旋转到的角度   

  6. //第三个参数pivotXType为动画在X轴相对于物件位置类型  

  7. //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置

  8. //第五个参数pivotXType为动画在Y轴相对于物件位置类型   

  9. //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置

  10. myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,

  11.                Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);


  12. myAnimation_Rotate.setDuration(3000);
复制代码

如何使用Java代码中的动画效果
使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果

public void startAnimation (Animation animation)

Android Launcher分页滑动功能源码解析 Android UI框架是构建用户界面的基础,它利用视图(View)和视图组(ViewGroup)作为基本的构建块。视图是所有UI组件的基类,负责绘制和事件处理,而视图组则用于容纳和管理多个视图或视图组,形成布局结构。理解UI框架的基本概念对于开发高性能、用户体验良好的应用至关重要。ViewPager是Android开发中非常实用的组件,它允许用户在屏幕间水平滑动切换视图,非常适用于引导页、图片展示、内容预览等场景。 阅读详情

相关推荐

Android视图双面翻转动画的实现

在项目的res/anim目录下创建一个XML文件。在该XML文件中定义所需的动画类型和参数。在代码中通过方法加载动画资源。将动画设置给需要动画效果的视图对象。下面是一个简单的XML定义补间动画的例子:<alpha</set>

weixin_42376614的博客 824

动画效果编程基础--AnimationAndroid

动画<span class="t_tag" onclick="function onclick(){tagshow(event)}">效果编程基础--AnimationAndroid 动画类型Android的animation由四种类型组成<span class="t_tag" onclick="function onclick(){tagshow(event)}">XML

浮白 1753

全面掌握Android动画开发

自定义动画在Android开发中是一个强大的工具,它允许开发者构建既美观又具有交互性的动画效果,为应用带来独特的用户体验。理解自定义动画的工作原理,可以帮助开发者更好地掌握动画的实现方法。是定义动画中属性值变化的关键。通过自定义估值函数,开发者可以精确控制动画过程中属性值如何计算。这在自定义复杂的动画效果时非常有用。// 根据fraction计算并返回一个interpolated value。

weixin_34456923的博客 760

开启动画用start

1、开启动画的时候,要view.startAnimation(anim); 2、如果是view.setAnimation()则点击按钮无法产生动画; 3、但是如果不点击产生动画效果,就可以用set。

qq_25330791的博客 357

Android动画与图表开发实战资源包

Android动画系统是为用户提供流畅且吸引人的视觉体验的重要组成部分。系统主要分为两大类:视图动画(View Animation)和属性动画(Property Animation)。视图动画适用于简单的动画效果,如平移、旋转、透明度变化和缩放,而属性动画则提供更加精细和强大的动画控制,允许开发者对对象的任何属性进行动画操作。本章将介绍Android动画系统的基础知识,为后续深入学习各类动画打下坚实基础。

weixin_42576467的博客 923

Android 动画框架实战:从基础到进阶

本文还有配套的精品资源,点击获取 简介:Android动画框架是提高用户体验的关键,包含属性动画和视图动画两种主要类型。本Demo以小红书欢迎页为例,详细介绍了如何运用属性动画来实现人物移动动画,包括使用 ObjectAnimator 、 ValueAnimator 、 AnimatorUpdateListener 和 An...

weixin_36464343的博客 1021

Android 动画详解

Android动画的分类与使用学习Android必不可少的就是动画的使用了,在Android版本迭代的过程中,出现了很多动画框架,这里做一个总结。Android动画类型分类逐帧动画【Frame Animation】,即顺序播放事先准备的图片。补间动画【Tween Animation】,View的动画效果可以实现简单的平移、缩放、旋转。属性动画【Property Animation】,补间动画增强版,支持对对象执行动画。

金戈鐡馬 5793

Android自定义动画效果教程:点击爆炸效果的实现

Android动画系统是应用开发中的重要组成部分,它能够赋予应用生动的视觉效果,提升用户交互体验。Android动画系统大致可以分为两大类:属性动画和视图动画。属性动画从Android 3.0版本引入,允许开发者对对象的任何属性进行动画操作。而视图动画则较为简单,主要用于视图组件的位置、大小、旋转等变换操作。动画的基本属性包括透明度(Alpha)、缩放(Scale)、平移(Translate)和旋转(Rotate)。每种属性动画都对应着不同的动画效果,开发者可以根据实际需求选择合适的动画类型。

weixin_30600615的博客 401

Android之Animation动画的使用(一)

我们在使用一些控件时候,难免会设置一些进入和退出的动画效果,比如popupwindow、listview的item动画、按钮、图片等等,要使这些控件有动画效果,当然需要用到Animation了。 下面我们就来讲讲Animation有哪些动画效果吧。 Android的Animation由四种类型组成:alpha、scale、translate、rotate,对应的效果如下: X

【博客地址迁移到】:https://zhengxiaoyong.com 2451

Android高级动画实践:旋转罗盘与风车效果开发

矩阵变换是图形学中的一种基础技术,广泛应用于二维(2D)和三维(3D)图形的转换。在2D图形中,矩阵变换通常用于实现平移、旋转、缩放和倾斜等操作。而在3D图形中,它还可以处理更复杂的变换,如透视投影。矩阵变换通过矩阵乘法将坐标从一个空间映射到另一个空间,这使得我们可以对图形进行变形而无需重新计算图形中每个点的坐标。在Android开发中,矩阵变换被封装在Matrix类中,该类提供了多种方法来操作和应用矩阵变换。对于旋转操作,Matrix类提供了setRotate和preRotate。

weixin_32661831的博客 1254

思科模拟器汉化教程(附带中文汉化包)

思科模拟器是一种模拟Cisco网络设备的软件工具。它可以模拟Cisco网络设备的所有功能,包括路由器、交换机、防火墙等,并提供了一个可视化的用户界面,让用户可以通过图形化的方式来管理网络设备。思科模拟器因其便捷、易用的特点被广泛应用于网络工程师的实验、测试和培训等方面思科模拟器的功能是强大的,但当我们在使用思科模拟器的时候就会有一些烦恼,由于思科是全球最大的企业级网络设备供应商之一。思科公司的产品和服务被广泛应用于各种领域和行业,所以思科模拟器默认是全英文的,但是在最新版本中是支持中文的。

2302_76908369的博客 4万+

安卓知识整理

111

淡泊明志,宁静致远 264

Quartus Prime v18.1 standard-QuartusPrimeV18.1标准版安装过程

Quartus Prime v18.1 standard安装破解过程 下载方式1:官网下载: https://fpgasoftware.intel.com/18.1/?edition=standard&platform=windows 下载方式2:可以从我的网盘下载安装包(如果链接未时效的话): 链接:https://pan.baidu.com/s/1bq4_FcNPSflU1zGJv__rvA 提取码:o0in ----------------------------------.

Alonger1988的博客 2万+

Android开发-图形定制

Android开发-图形定制

m0_61787196的博客 506

从零构建EtherCAT从站:SSC工具配置与TwinCAT3 PDO/SDO调试实战

本文详细介绍了从零构建EtherCAT从站的完整流程,重点讲解SSC工具配置与TwinCAT3 PDO/SDO调试实战。通过解析EtherCAT通信机制、PDO与SDO的核心概念,提供SSC工具配置技巧、XML文件生成与校验方法,以及TwinCAT3环境下的调试经验,帮助开发者高效完成EtherCAT从站开发与优化。

weixin_42520573的博客 342

麒麟和UOS系统编写桌面点击可执行文件

在桌面上创建一个快捷方式(.desktop 文件)来运行脚本。打开文本编辑器,创建一个新文件,如。这可以通过文本编辑器来完成。首先,确保您的脚本具有执行权限。现在,您应该可以双击桌面上的。保存此文件到桌面目录,例如,在桌面上创建一个快捷方式(文件来运行您的脚本了。使用图形界面或命令行给。现在您可以双击桌面上的。为您脚本的实际路径。是您脚本的实际路径。文件来运行您的脚本了。

u013934107的博客 7251

Android动画概要介绍

android自定义控件开发入门与实践 绘图基础 视图动画 属性动画 属性动画进阶 动画进阶 Paint基本使用 绘图进阶 混合模式 Canvas与图层 Android画布 Matrix与坐标变换 封装控件 控件高级属性 ...

凉拌西红柿 200

linux redis7 完整的集群搭建过程

一。安装: 1.1 说明: Redis官方只提供了源码,并没有提供经过编译之后的安装包。 因此,安装Redis,要先编译、后安装。(即源码安装方式) 注意:需要联网安装 1.2 安装编译的工具: yum install gcc gcc-c++ -y 1.3 下载tar包,上传到linux服务器,解压配置环境变量 1.4 cd +解压的目录下:编译 make 注意:如果编译失败,请重新进行解压编译,...

m0_38028438的博客 719

关于Android中动画探究(一)——视觉动画

文章目录视图动画(补间)基本动画进阶用法视图动画原理解析视图动画的局限性视图动画的优点 视图动画(补间) 以下为Android常用的视图动画类,xml动画这里不做详解。 基本动画 ScaleAnimation(缩放动画) 可变化控件的大小 /** * Scale动画里x、Y指这个控件的宽高百分比,取值0~1 * * @param fromX 动画开始的X...

Osborn_的博客 472

UNet改进(24):注意力机制-从基础原理到高级融合策略

本文系统探讨了如何通过引入各类注意力机制增强UNet在医学图像分割中的性能。文章分为基础篇、进阶篇和高级篇三个层级:基础篇介绍了时序注意力、可变形注意力、分层注意力等8种基础机制;进阶篇提出了5种混合注意力设计;高级篇则探讨了全局+局部+多尺度等复杂组合机制。实验表明,这些注意力模块在心脏MRI、肺部感染等任务中能提升2-15%的分割精度。文章还提供了硬件适配建议和完整实现代码,为研究者提供了全面的技术参考。未来方向包括NAS优化、量子注意力等前沿探索,为UNet在医疗影像等领域的应用革新提供了理论指导。

2501_91516851的博客 765

2-1 AUTOSAR ASW概述

应用软件层(Application Software Layer,ASW)位于AUTOSAR整个架构的顶层。它由各种AUTOSAR Software Component(SW-C)组成,每个SW-C封装了各种应用的功能集。每个SW-C只能运行在一个ECU中。ASW层的设计目标是实现功能的可重用性和可配置性。它通过封装底层提供的服务,为上层应用层提供统一的接口。ASW层的开发可以基于AUTOSAR提供的标准化软件组件,也可以根据具体需求进行定制开发。

qq_42357877的博客 1904

从零开始学习自定义view【4】探索并实践Android中的自定义View动画(视图动画、属性动画、Drawable动画、过渡动画):简单而精彩

视图动画主要用于修改视图的外观,包括透明度、平移、缩放和旋转等属性。通过视图动画,可以为应用中的各种视图元素添加生动的效果。例如,当用户点击按钮时,可以使用缩放动画来实现按钮的放大效果,增加交互的反馈感。属性动画是一种更为灵活的动画类型,可应用于任何对象,不仅限于视图。通过属性动画,可以平滑地过渡对象的各种属性值。这使得我们开发人员可以创建更加流畅和自定义的动画效果。例如,可以使用属性动画实现一个平滑的颜色过渡效果,让界面元素在不同状态之间平滑过渡。

jiet_h的博客 906

Linux(31)Rockchip RK3568 Ubuntu22.04上部署 Docker: 问题与解决方案

本博客在总结这些问题及其解决方案,为遇到类似问题的兄弟提供参考,如果我后续有碰到其他Docker 问题也会在此更新补充。

我其实什么都不会 1646

Android 动画到底怎么写?万字解析Android三大动画的原理与实践

一篇文章带你掌握安卓三大动画的实际操作及底层原理解析!

小菜的博客 2298

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: Android开发之搜芽客户端Version1.0的结束(过程和结果展示)
下一篇: Android开发之style属性和预定义样式
minimicall
博客等级 码龄18年 407粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值