Android UI设计总结

浅谈安卓UI设计 用户界面在程序开发中十分重要,一个好的用户界面设计需要考虑到用户使用体验、是否美观方便等。 在界面设计的过程中,需要考虑如何制作出UI界面,怎么样控制UI界面两大块。 这里先放上之前我们UI作业的截图: ![1](https://img-blog.youkuaiyun.com/20180616235118904?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dl... 阅读详情

1.把Button或者ImageButton的背景设为透明或者半透明:

半透明<Buttonandroid:background="#e0000000" ... />
透明<Buttonandroid:background="#00000000" .../>

其他透明度:在RGB的值前面加上数字(100以内),如#90436EEE(RGB为436EEE),#50436EEE,根据值的大小呈现不同的显示效果,值越小透明度越高。

2.设置按钮背景图片或颜色:

btn.setBackgroundResource(R.drawable.comment_sel);

btn.setTextColor(getResources().getColor(R.color.blue));

3.文字换行:&#x000A;(要加上分号).

4.布局时,不宜做过多的嵌套,否则容易报堆栈溢出异常。

5.9.png图片最好放在drawable-hdpi文件夹中,否则可能显示时可能会出现黑色的外边线。

6.android进程优先级:foreground Process(前台进程)>Visable Process(不在前端显示,但也没有完全隐藏,比如弹出一个对话框式的Activity)>ServiceProcess>Background Process>Empty Process。

7.Android进程启动:PackageServiceàPackageManagerà加载manifest配置文件—>读取MAIN和LAUNCHERà映射类的实例。

8.TextView设置符号时(如问号),要在英文键盘环境下输入,否则会被显示为省略号。

9.EditText追加字符:

edit.append("0");

edit.getText().insert(edit.getSelectionStart(),"0");

 10. EditText去掉默认的边框:android:background="@null"或者 android:background="#00000000


11.weight的使用:weight的意义在于,对于父控件,若子控件能够完全显示,先分配没有设置weight的控件,对于有weight属性的控件,则根据weight的值等分布局的剩余部分。如右图:都采用RelativeLayout左中右布局,但是由于文字的字数不同结果出现第二个布局中文字换行。解决方法:对中间的TextView设置weight = 1;外层采用LinearLayout或其他都可以达到需要的效果。

12.转字符串时,优先选用String.valueOf。直接用toString时最好做一个非null判断。二者区别可参考源码。

13.android工程中如果出现(所有的)资源找不到异常,可能是图片问题,检查9.png是否有问题。

14.对LinearLayout(或其他widget)整个控件设置onclick事件:

(1).XML中设置CliClickable=true(也可以不用设置,区别在于设置为true之后必须在代码中注册监听事件,否则点击后程序会崩溃),然后直接重写onClick方法;

(2)XML中设置onClick=”name(响应事件的名称)” ,在Activity中写一个name(View v)的方法执行点击后的操作。

15. dialog/popupWindow的WindowLeaked异常:

AlertDialogdialog = new AlertDialog.Builder(this);

dialog.show();

finish();

android 上的dialog.show不会阻塞调用线程(如UI线程),导致dialog尚未dismiss或者cancel之前,dialog所依赖的context被关闭,因此出现windowleaked。但是此问题并不影响程序继续运行。

解决办法:在dialog的OnClickListener事件中先dismiss(onClick中有一个DialogInterface参数,直接调用此DialogInterface的dismiss即可)后再finish activity(点击按钮时先调用dialog的dismiss()方法,然后调用Activity的finish()方法)。

对于PopupWindow, 同样是在finish之前调用其dismiss()方法。

简单通用的方法时,重写Activity的finish()方法:

	@Override
	public void finish() {
		if (null != mPopupWindow) {
			mPopupWindow.dismiss();
		}
		super.finish();
	}


16.xml中有EditText时,弹出键盘时导致页面向上收缩:

解决办法:在manifest.xml中对应的Activity设置android:windowSoftInputMode="adjustPan";并且如果该xml中有ListView时,不能设置android:fastScrollEnabled="true"android:focusable="true"(有待再次验证)。

如果布局中有EditText,默认隐藏软键盘:对Activity设置android:windowSoftInputMode="stateHidden"

17.若LinearLayout设置OnclickListener点击事件,则该LinearLayout中不宜放置Button按钮,否则当点击整个LinearLayout时,Button所占的区域无法执行点击命令。(也许可以通过设置focusable解决)

18. EditText的getText方法不会返回null(因此调用getText不必作mull判断)。

19.TextView设置字体粗体:

 在xml文件中使用android:textStyle=”bold” 可以将英文设置成粗体,

但是不能将中文设置成粗体,

将中文设置成粗体的方法是:

TextView tv =(TextView)findViewById(R.id.TextView01);

TextPaint tp = tv.getPaint();

tp.setFakeBoldText(true);

20.TimePicker,DatePicker:根据键盘输入动态更新日期

使用TimePicker,DatePicker时无法屏蔽软键盘,因此用户可以通过键盘输入日期。

假设有一个确定按钮。当用户通过键盘手动输入日期,点击确定,结果无法取到正确的日期值。解决方法:在findviewbyid找到TimePicker,DatePicker时首先调用它们的requestFocus(),点击确定时调用clearFocus()。

 

21.设置全屏 :

1)setContentView之前:

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

2)自定义style:<style name="full_screen">

        <itemname="android:windowNoTitle">true</item>

      <itemname="android:windowFullscreen">android:windowNoTitle</item>

</style>

对应的Activity设置android:theme=”@style/full_screen”

3)直接在Activity中设置android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

22.使View居中:

利用weight属性,可以在上下或左右各添加空View:

<View       android:layout_width="0dip"

           android:layout_height="0dp"

            android:layout_weight="1"

            />

23.Fragment中嵌套ViewFlipper时,滑动触摸无响应:

         在onCreateView中,对由inflate()得到的View设置view.setOnTouchListener(this);

   在重写onTouch方法时返回true(而不再是detector.onTouchEvent(event))。

24.设置图片使其充满ImageView控件:

   为了匹配ImageView的width和height属性(如:fill_parent),则设置scaleType=”fitXY”.

25.android的签名期限如果过期,项目就会报错,无法打包,不能通过编译。

26.在Adapter使用Intent启动Activity:

         在构造器中传入Context参数,用Context.startActivity()启动Activity。

27.View设置padding和margin:

         Padding:直接调用setPadding();

         Margin:先构造出LayoutParams params = newLayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);之后params.setMargins(10,1 0,1 0, 10);最后

view. setLayoutParams(params);

28.软键盘imeOptions的用法:

android:imeOptions="flagNoExtractUi"  //使软键盘不全屏显示,只占用一部分屏幕 

同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键 

android:imeOptions="actionNone"  //输入框右侧不带任何提示 

android:imeOptions="actionGo"    //右下角按键内容为'开始' 

android:imeOptions="actionSearch"  //右下角按键为放大镜图片,搜索 

android:imeOptions="actionSend"    //右下角按键内容为'发送' 

android:imeOptions="actionNext"   //右下角按键内容为'下一步' 

android:imeOptions="actionDone"  //右下角按键内容为'完成' 

29.EditText设置字符长度限制:   

XML: android:maxLength=“15

Code: editText.setFilters(newInputFilter[]{new InputFilter.LengthFilter(15}); 

30. java.lang.InstantiationException:can't instantiate class com.sns.ui.Login$UserLogin; no empty constructor

内部类UserLogin声明成static。


31. 判断当前为飞行模式:

Settings.System.getInt(context.getContentResolver(), 

          Settings.System.AIRPLANE_MODE_ON, 0)  == 0; 

32.监听enter键,点击enter实现登录或其他响应事件:

editText.setOnEditorActionListener(newOnEditorActionListener() {

 

@Override

publicboolean onEditorAction(TextView v, int actionId, KeyEvent event) {

// TODOAuto-generated method stub

Server.login(Login.this,name, pwd);

returnfalse;

}

});

33.若Activity设置全屏,则Fragment中setHasOptionsMenu(true);将看不到菜单项。

34. PopupWindow:点击外部窗体时使其消失
1)popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());//重要: 点击使其消失,并且不会影响背景

上面的方法已经过时,使用下面这个新方法:

popupWindow.setBackgroundDrawable(new BitmapDrawable(mResources, (Bitmap)null));

2)按返回键时,让popupWindow dismiss的同时finish当前的activity:

使用PopupWindow(View contentView, int width, int height, boolean focusable)构造方法时,设置其focusable参数为false。
或者调用popupWindow.setFocusable(false);

原因是让popupWindow不能获取焦点。焦点在Activity上,返回键就会交给Activity进行处理。

35.用 SpannableStringBuilder处理TextView:

SpannableStringBuilder style=new SpannableStringBuilder(str);
style.setSpan(new ForegroundColorSpan(Color.argb(255, 12, 170, 218)),0,3,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
mTextView.setText(style);
注意:设置自定义color时,优先调用Color.argb方法(使用Color.rgb可能会出错)。

36.自定义Adapter继承自BaseAdapter时,ViewHolder使用静态类,非static的ViewHolder会导致ListView在滑动时比较卡。
37. java.lang.RuntimeException: Unable to destroy activity {com.demo.***.MainTabActivity}: java.lang.RuntimeException: Unable to destroy activity {com.demo.***.TabActivity01 }: java.lang.IllegalStateException: Activity has been destroyed
检查Activity的生命周期,对于ondestroy不要放不相关的代码。
38.ListView的item对某个widget进行触摸点击事件:
在item的布局中对相应的widget设置:
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
主要考虑获取焦点的优先级,让widget在默认情况下不获取焦点。
39.EditText没有边框,聚焦时只有底部的边框出现:

在manifest.xml中看android:targetSdkVersions是否已设定。例如:要在4.0的平台上测试,而android:targetSdkVersion=13(3.2平台),就会出现EditText缺失边框的现象。删除android:targetSdkVersion标签即可。

40.对EditText,点击屏幕,隐藏软键盘:

对当前Activity的Layout设置id,然后重写onclick方法:

InputMethodManagerimm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(v.getWindowToken(),0);


41. android.view.WindowManager$BadTokenException:Unable to add window -- tokenandroid.app.LocalActivityManager$LocalActivityRecord@41226b10 is not valid; isyour activity running?

在Activity或View中,显示Dialog(AlertDialog),导致此错误。

1).如果构造Dialog使用的context是getApplication,改成相应的Activity,在Activity中进行添加view的操作。

2).如果使用了TabActivity(或者TabActivity里面嵌套TabAcitivity),context使用getParent。

42.TextViewi设置图片

textView.setCompoundDrawablesWithIntrinsicBounds(null, null, icon, null);

43.Fragment中嵌套Fragment.

如果要使用replace,那么Fragment中嵌套的Fragment的id属性,一定不要和Activity中的指定的Fragment的id属性相同。

否则replace后显示的是Activity中的Fragment 。

44.

使用GridView, 无法居中,右边出现很大的空隙:

1)调整GridView的android:layout_gravity属性为center_horizontal, 使之居中.

2)通常无法居中,是由于item中的元素未居中,确切地说是由于item中的元素偏向左边,导致GridView整体向左边偏,右边出现空隙。设置item中的元素父控件layout_width="match_parent",子控件居中显示即可, android:layout_gravity = center。

45.

Toast要放在UI线程中,在非UI线程中不会显示。

46.自定义Dialog布局,设置无标题样式:

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(view);








        
Android Studio安卓学习笔记(三)Android用户界面的设计布局与组件(一)用户界面布局设计(1)... 当我们创建了一个安卓项目后,我们会发现真正建立一个完善的安卓项目并不是想象的那么容易。其实和设计GUI可视化界面一样,开发安卓也需要考虑很多方面,主要考虑的还是界面布局和需要的组件。 一:Android用户界面布局管理 Android系统按照MVC(模型(model)-视图(view)-控制器(controller))设计模式将应用程序的界面设计与功能控制设计分离,类似于... 阅读详情

相关推荐

使用Android studio设计用户界面(UI)

用户界面(UI)题目一 题目一 完成界面的设计,要求采用合理布局,使界面效果与下图所示结果保持一致。(密码输入框使用密码模式;“男”单选按钮默认选中,身份下拉列表框的内容为:开发者、设计者)。 XML代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_pa

weixin_46859144的博客 8923

android ui实验心得体会,Android的UI显示原理总结

这张图大致解释了各模块之间的关系:Android视图层主要工作原理图.png下文内容并没有具体的分析逻辑,主要是解释上图中各模块的职责,算是对Android视图层各模块的一个小总结,方便对于整个AndroidUI显示原理的理解。Window相关Window可以说是Android Framework层提供的一个最基础的UI组件管理类,PhoneWindow是它的唯一实现类。它屏蔽了开发者与Windo...

weixin_36074359的博客 787

使用Android Studio设计UI界面

使用Android Studio的强大功能,我们可以轻松创建出各种各样的精美界面,并为它们添加复杂的功能和效果,以满足用户的需求。在上述代码中,我们通过findViewById方法获取了按钮和EditText组件的引用,并将其与对应的布局文件中的ID进行关联。然后,我们为按钮设置了一个匿名的点击监听器,当用户点击按钮时,会触发其中的onClick方法。最后,通过点击Android Studio工具栏上的“运行”按钮,我们可以在模拟器或连接的真实设备上预览并测试应用程序的UI界面和功能。

HackSquad的博客 2950

Android常见界面布局(详细介绍)

一、View视图 所有的UI元素都是通过View与ViewGroup构建的,对于一个Android应用的用户界面来说,ViewGroup作为容器盛装界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。 二、界面布局编写方式 有两种界面布局方式,第一种是在XML文件中编写布局,最常用的也是这种;第二种是在java代码中编写布局,如图: 1、在XML文件中编写布局 UI界面...

振华OPPO的博客世界 2万+

47、Android用户界面设计全解析

本文全面解析了Android用户界面设计的核心概念与实践方法,涵盖视图与视图组的基础知识、常用布局管理器的特点与选择策略、安卓工作室设计工具的使用技巧,以及通过XML、设计工具或Java代码创建界面的对比分析。同时探讨了布局优化、事件处理和交互体验提升的方法,并展望了未来Android UI设计的发展趋势,是Android开发者构建高效、美观、响应式用户界面的实用指南。

aa123的博客 65

用户界面设计的实验报告

用户界面设计实验报告,心得体会等等,来自于中南民族大学

Android开发之UI界面设计

下面介绍五种不同样式的UI界面,它们的样式分别如下: 下面就来分别介绍各部分代码;当然我也将相应的代码上传了的:https://download.youkuaiyun.com/download/qq_43433255/10848982 先建立如下的项目;mainactivity用来打开其它的五个界面。 注意:图片不是重点,重点在于btn.xml与yuku.xml 下面就是最激动人心的时刻: btn...

wuluo的博客 4709

Android UI设计心得

Android UI设计心得。包括线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、框架布局(FrameLayout)、绝对布局(AbsoluteLayout)。其中AbsoluteLayout在Android SDK2.3.3之后已经明确不再支持。 资源带有各个布局的实现实例。

Android开发自我总结(2)————UI设计(布局和控件)

UI设计

肇秋贰拾捌的博客 1991

android 漂亮的UI界面 完整的界面设计

声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传上来的。。。。。 android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务设计,请别商用,要用请修改。。。

基于Android技术的界面设计与研究

基于Android技术的界面设计与研究,

安卓Android 架构模式及UI布局设计

界面设计与程序逻辑分离:有利于并行安卓中的架构模式 **优势:** 1. 设计可扩展的应用程序,方便进行未来的更改和更新。 2. 实现模块化设计,提高代码质量,便于测试和维护。开发,后期修改界面时不需修改程序逻辑代码。设计模式MVC、MVP、MVVM

m0_74154295的博客 3918

ISP模块之色彩增强算法--HSV空间Saturation通道调整

色彩增强不同于彩色图像增强,图像增强的一般处理方式为直方图均衡化等,目的是为了增强图像局部以及整体对比度。而色彩增强的目的是为了使的原有的不饱和的色彩信息变得饱和、丰富起来。对应于Photoshop里面的“色相/饱和度”调节选项里面对饱和度的操作。色彩增强的过程,并不改变原有彩色图像的颜色以及亮度信息。     在我的色彩增强算法模块里面,始终只针对色彩饱和度(Saturation)信息做研究,

松间明月 1万+

(8 Android) 用户界面UI设计

(8 Android) 用户界面UI设计 3.1.1 Android界面视图类 Android 图形化的用户界面(Graphical User Interface , GUI) 采用了结构清晰的MVC模型(Model-View-Controller) ,其具体含义: ·提供了处理用户输入的控制器(Controller) ; ·显示用户界面的视图(View) ; ·保存数据和代码的模型(Model)...

chenhanhao0000的博客 425

openEuler 20.03 LTS面向RK3399移植系列(3)—openEuler 20.03 LTS面向Firefly RK3399的第一个版本(Linux kernel 4.4)

任务动机:完成openEuler面向RK3399开发板的移植。 任务描述:按照固件烧写准备,固件获取,固件打包和烧写的步骤实现openEuler面向RK3399开发板的移植,整理过程和相关命令记录到文档。 1. 制作openEuler的rootfs.img 1.1 开发环境 树莓派--openEuler系统 openEuler 20.03 LTS 的内测版本镜像,下载。 1.2 具体操作 1.2.1 ssh远程连接树莓派 确定树莓派IP ssh连接 1.2.2 制作rootfs.img

火种源码的机器人技术专栏 2365

通义千问语言模型Qwen2.5架构详解

此外,将基于API的模型 Qwen-Plus 与领先的专有和开源模型进行了对比,包括 GPT4-o、Claude-3.5-Sonnet、Llama-3.1-405B和DeepSeek-V2.5。Qwen2.5-Math-72B-Instruct的整体性能超越了Qwen2-Math-72B-Instruct和GPT4-o,甚至是非常小的专业模型如 Qwen2.5-Math-1.5B-Instruct也能在与大型语言模型的竞争中取得高度竞争力的表现。近来也出现了明显的转向小型语言模型(SLMs)的趋势。

搏博的专栏 1万+

android ui设计欣赏,推荐20款最优秀的安卓界面设计

做过APP设计的同学,都知道安卓的ui不像IOS那么好设计,下面我们来欣赏一下国外总结的20款优秀的安卓APP。点击图片欣赏详细。LOCK SCREEN BY MARK VAN LEEUWENWUNDERLIST ANDROID ACTION BAR BY TIMOTHYVISUAL EQUALIZER BY NICOLA FELACOANDROID APP TO RECORD 360 SPHER...

weixin_32643811的博客 5448

别再踩坑了!Win10下用阿狸狗V3.2.6安装Cadence SPB 17.4的保姆级避坑指南

本文提供了Win10系统下使用阿狸狗V3.2.6安装Cadence SPB 17.4的详细避坑指南,涵盖环境准备、安装失败清理、分步安装与问题诊断、授权配置及典型故障排除等内容,帮助用户顺利完成安装并避免常见错误。

weixin_32576389的博客 359

Android用户界面设计

Android用户界面设计 用户界面设计是Android应用开发的一项重要内容。在进行开发的过程中,我们需要了解UI元素如何呈现给用户,也就是如何控制UI界面。andorid提供了4种控制UI的方法。 一、控制UI布局 使用xml布局文件来控制UI 使用JAVA代码来控制UI 使用xml布局与JAVA代码来控制UI 使用自定义View来控制UI 具体的东西我们需要简单讲解:1.如何使用xml布局

人生在世 1万+

企业微信微盘API权限避坑指南:为什么你的Python脚本无法获取文件列表?

本文深入解析了企业微信微盘API的权限模型,解释了为何即使使用超级管理员账号,Python脚本也可能因权限不足而无法获取文件列表。核心在于微盘API基于“应用身份”而非“用户身份”进行校验,应用只能访问自身创建的空间。文章提供了构建文件上传代理、利用事件回调等合规的替代方案,帮助企业实现高效数据同步。

weixin_29322553的博客 523

在 Eclipse 里快速用上 SAP Joule:ABAP 开发者的 AI 助手上手指南

本文介绍了SAP Joule for developers如何集成在ABAP开发工具中,为开发者提供AI辅助能力。主要内容包括: Joule作为ADT的增强层,直接嵌入开发流程,支持在项目资源管理器、代码编辑器等场景下通过上下文菜单调用AI功能。 核心使用方式:打开Joule视图后,可在开发对象、代码片段等上下文中使用自然语言交互,请求解释、生成测试或获取示例代码。 重点功能: Explain:解释现有代码逻辑,降低理解成本 ABAP Unit测试生成:快速创建与上下文相关的测试用例 支持在传输管理器等完整

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 391

【Android基础UI学习之用户界面设计基础】

android前端UI相关的用户界面设计基础知识

weixin_48495360的博客 893

车载以太网网络测试-24【SOME/IP概述】

SOME/IP**(Scalable Service-Oriented Middleware over IP)是一种基于IP网络的面向服务的通信协议,专为汽车电子系统设计,支持服务发现、远程过程调用(RPC)和事件通知等功能。核心标准是由 AUTOSAR(汽车开放系统架构)定义,现已成为车载通信的重要标准之一(如AUTOSAR 4.0+)。SOME/IP的全称是,它是一种基于IP网络的面向服务的通信协议,广泛应用于汽车电子(AUTOSAR)和物联网领域。Scalable(可扩展的)含义。

车载网络测试工程师的博客 2186

安卓设计师不容错过的15款实用UI界面设计工具

转载注明出处:https://weibo.com/ttarticle/p/show?id=2309404210660820028355最近刮起了一股“养蛙儿子”的风潮。独特的UI设计、萌萌的画风和简洁的用户体验吸引了大批的用户。在不少人直呼“哇,我的蛙儿子好可爱,好萌”的背后,我们可以看到一个高质量的UI设计对于提高应用下载量有着非常重要的作用。在此,小编为大家整理了几款好用的安卓UI界面设计工具...

AndyRenJie的博客 1469

别再无脑调打码平台了!聊聊 ddddocr 在爬虫验证码识别中的真实边界

ddddocr是国产开源社区的优秀成果,它大幅降低了验证码识别的入门门槛。工具的自由不等于工程的自由。真正的能力不在于“会不会调库”,而在于能否准确判断工具的适用边界、构建鲁棒的容错机制、并在成本与效果之间做出理性权衡。下次当你准备在爬虫中加入验证码识别时,不妨先问自己:这个站点的验证码类型是否在ddddocr的能力圈内?我的预处理是否针对该站点做过专项调试?我的失败重试和监控机制是否完备?如果三个问题都能肯定回答,那么ddddocr就是你的利器;如果有任何一个犹豫,请先补齐短板再上路。评论区交流:你用。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1279

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: Android:解决“Bitmap Size Exceeds VM Budget”错误
下一篇: Android记住用户
snow4dev
博客等级 码龄15年 8粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值