Android Wear 进阶 - 3 Creating Custom UIs for Wear Devices 创建自定义的手表设备UIs

androidwear开发之创建并运行Android_Wear_App androidwear开发之创建并运行Android_Wear_App-穿戴猫论坛 立即下载

Creating Custom UIs for Wear Devices

<翻译>创建自定义的手表设备UIs

Dependencies and Prerequisites

  • Android 4.4W (API level 20) or higher on the wearable device

User interfaces for wearable apps differ significantly from those built for handheld devices. Apps for wearables should follow the Android Weardesign principles and implement the recommendedUI patterns, which ensure a consistent user experience across apps that is optimized for wearables.

This class teaches you how to create custom UIs for your wearable apps and custom notifications that look good on any Android Wear device by implementing these UI patterns:

  • Cards
  • Countdowns and confirmations
  • Long press to dismiss
  • 2D Pickers
  • Selection lists

The Wearable UI Library, which is part of the Google Repository in the Android SDK, provides classes that help you implement these patterns and create layouts that work on both round and square Android Wear devices.

Note: We recommend using Android Studio for Android Wear development, as it provides project setup, library inclusion, and packaging conveniences. This training assumes you are using Android Studio.

<翻译>依赖和前提准备
手表设备版本为Android 4.4(API level 20)或者更高
手表应用的用户界面和建立在手机上麦你的用户界面有着本质的区别。手表端的应用应该遵循 design principles原则并且实现推荐的 UI patterns,这些保证了为手表端优化过的应用的用户体验始终如一。

这个课程教你如何给  wearable apps 和  custom notifications 创建自定义的UIs,这个UIs通过实现了下面的UI 模式让他们在android wear设备上面显示的很好:
1:卡片
2:读秒Countdowns和确认。
3:长按去解除
4:2D Pickers
5:选择列表

手表UI的库,是Android SDK 中Google 资源库(Repository)中的一部分,提供了一些类,这些类帮助你实现这些模版并且创建可以在圆形和方形的手表设备上面都能运行的布局。
注意:我们建议使用Android Studio 去开发Android Wear。

Lessons



Defining Layouts
Learn how to create layouts that look good on round and square Android Wear devices.
Creating Cards
Learn how to create cards with custom layouts.
Creating Lists
Learn how to create lists that are optimized for wearable devices.
Creating a 2D Picker
Learn how to implement the 2D Picker UI pattern to navigate through pages of data.
Showing Confirmations
Learn how to display confirmation animations when users complete actions.
Exiting Full-Screen Activities
Learn how to implement the long-press-to-dismiss UI pattern to exit full-screen activities.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1: 展示确认窗口

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Showing Confirmations

Confirmations in Android Wear apps use the whole screen or a larger portion of it than those in handheld apps. This ensures that users can see these confirmations by just glancing at the screen and that they have large enough touch targets to cancel an action.

<翻译>在android 手表应用的确认页使用整个屏幕或者一个比手机端应用大的份额( portion)。这个保证了用户可以看到确认也通过看手机屏幕,并且用户有足够大的目标去取消一个action。(就像我们说出了语音以后,他会有一个取消的按钮)

The Wearable UI Library helps you show confirmation animations and timers in your Android Wear apps:<翻译>手表UI库帮助你显示确认的动画和倒计时在你的android 手表应用中。

Confirmation timers 确认倒计时
Automatic confirmation timers show users an animated timer that lets them cancel an action they just performed.
<翻译>自动的确认倒计时给用户显示了一个动画的倒计时,它可以让用户取消掉刚才的操作。
Confirmation animations 确认动画
Confirmation animations give users visual feedback when they complete an action.
<翻译> 确认东湖给用户可见的回馈当他们完成了动作。

The following sections show you how to implement these patterns.下面的内容展示了如何实现这些模式

Use Automatic Confirmation Timers使用自动的确认倒计时




Figure 1: A confirmation timer.

Automatic confirmation timers let users cancel an action they just performed. When the user performs the action, your app shows a button to cancel the action with a timer animation and starts the timer. The user has the option to cancel the action until the timer finishes. Your app gets notified if the user cancels the action and when the timer expires.

<翻译>自动确认的倒计时让用户可以取消一个刚才执行的操作。单用户执行了一个操作,你的应用显示了一个有取消操作的按钮,这个按钮还有一个倒计时的动画,然后启动这个倒计时。用户可以选择取消操作的知道倒计时完成之前。你的应用会得到用户取消了操作的通知或者倒计时超时的通知。

To show a confirmation timer when users complete an action in your app:

  1. Add a <DelayedConfirmationView> element to your layout.
  2. Implement the DelayedConfirmationListener interface in your activity.
  3. Set the duration of the timer and start it when the user completes an action.

Add the <DelayedConfirmationView> element to your layout as follows:

<翻译>为了当用户在你的应用中完成了操作后显示一个确认的动画:

1:添加一个 <DelayedConfirmationView> 项目到你的布局中

2:在你的activity 中实现a <DelayedConfirmationView> 的接口

3:设置倒计时并且在用户完成了操作后开始及时。

<android.support.wearable.view.DelayedConfirmationView
    android:id="@+id/delayed_confirm"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:src="@drawable/cancel_circle"
    app:circle_border_color="@color/lightblue"
    app:circle_border_width="4dp"
    app:circle_radius="16dp">
</android.support.wearable.view.DelayedConfirmationView>

You can assign a drawable resource to display inside the circle with the android:src attribute and configure the parameters of the circle directly on the layout definition.

To be notified when the timer finishes or when users tap on it, implement the corresponding listener methods in your activity:

<翻译>你可以通过android:src 属性来将一个drawable 的资源分配显示在圆圈中,并且配置圆圈的参数在布局中。

为了在倒计时完成后或者用户取消了之后收到通知,就要实现相应的监听方法。

public class WearActivity extends Activity implements
                           DelayedConfirmationView.DelayedConfirmationListener {

    private DelayedConfirmationView mDelayedView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wear_activity);

        mDelayedView =
                (DelayedConfirmationView) findViewById(R.id.delayed_confirm);
        mDelayedView.setListener(this);
    }

    @Override
    public void onTimerFinished(View view) {
        // User didn't cancel, perform the action
    }

    @Override
    public void onTimerSelected(View view) {
        // User canceled, abort the action
    }
}

To start the timer, add the following code to the point in your activity where users select an action:

为了启动倒计时,添加下面的代码到你的actiivty的用户选择action的点。

// Two seconds to cancel the action
mDelayedView.setTotalTimeMs(2000);
// Start the timer
mDelayedView.start();

Figure 2: A confirmation animation.

Show Confirmation Animations显示确认动画



To show a confirmation animation when users complete an action in your app, create an intent that starts ConfirmationActivity from one of your activities. You can specify one of the these animations with theEXTRA_ANIMATION_TYPE intent extra:

You can also add a message that appears under the confirmation icon.

To use the ConfirmationActivity in your app, first declare this activity in your manifest file:

<翻译>当用户完成了应用中的一个action的时候,为了显示确认的动画,在你的额activit中创建一个intent去启动 ConfirmationActivity 。

你可以通过EXTRA_ANIMATION_TYPE intent extra指定下面的动画。

你也可以在确认的icon 下面添加信息。

为了使用ConfirmationActivity 在你的应用中,首先在清单文件中声明这个actiivty 

<manifest>
  <application>
    ...
    <activity
        android:name="android.support.wearable.activity.ConfirmationActivity">
    </activity>
  </application>
</manifest>

Then determine the result of the user action and start the activity with an intent:

然后确定用户的动作结果并且通过intent来启动activity

Intent intent = new Intent(this, ConfirmationActivity.class);
intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE,
                ConfirmationActivity.SUCCESS_ANIMATION);
intent.putExtra(ConfirmationActivity.EXTRA_MESSAGE,
                getString(R.string.msg_sent));
startActivity(intent);

After showing the confirmation animation, ConfirmationActivity finishes and your activity resumes.

当显示确认的界面以后,   ConfirmationActivity  完成了,并且你的acitivyt 会resume。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1: 推出全屏的activity

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Exiting Full-Screen Activities


By default, users exit Android Wear activities by swiping from left to right. If the app contains horizontally scrollable content, users first have to navigate to the edge of the content and then swipe again from left to right to exit the app.

For more immersive experiences, like an app that can scroll a map in any direction, you can disable the swipe to exit gesture in your app. However, if you disable it, you must implement the long-press-to-dismiss UI pattern to let users exit your app using the DismissOverlayView class from the Wearable UI Library. You must also inform your users the first time they run your app that they can exit using a long press.

For design guidelines about exiting Android Wear activities, see Breaking out of the card.

<翻译> 默认的情况下,用户推出了android 的手机activity通过从左向右的滑动(swip)。如果应用包含了水平的可滑动的内容,用户首先要滑动到内容的边缘,然后在从左向右滑动。

为了真实的体验,例如一个应用可以在地图上面随便的滑动方向,你要在你的应用中禁用滑动退出的手势。然而,如果你禁用了这个,你必须要实现长按取消的UI 模式,这个模式让用户可以通过手表UI库中的 DismissOverlayView 类来退出你的应用。

关于推出android 手表actiivty的设计的向导,请查看Breaking out of the card.

Disable the Swipe-To-Dismiss Gesture禁用互动取消的手势



If the user interaction model of your app interferes with the swipe-to-dismiss gesture, you can disable it for your app. To disable the swipe-to-dismiss gesture in your app, extend the default theme and set theandroid:windowSwipeToDismiss attribute to false:

<翻译>如果你应用的用户的交互模式和滑动取消的手势有冲去,你可以在你的app中禁用这个手势。为了在你的应用中禁用滑动取消的手势,集成默认的主题并且设置属性android:windowSwipeToDismiss为false

<style name="AppTheme" parent="Theme.DeviceDefault">
    <item name="android:windowSwipeToDismiss">false</item>
</style>

If you disable this gesture, you must implement the long-press-to-dismiss UI pattern to let users exit your app, as described in the next section.

<翻译>如果你禁用了这个手势,你必须实现长按取消的UI模式来用用户推出你的应用。

Implement the Long Press to Dismiss Pattern 实现长按取消的模式



To use the DismissOverlayView class in your activity, add this element to your layout definition such that it covers the whole screen and is placed above all other views.

The following example shows how to add the <DismissOverlayView> element:

<翻译> 为了在你的activity 中使用 DismissOverlayView 类,添加这个类型到你的布局定义中。并且这个是覆盖整个界面同时被放在所有的view 的最上面。

下面的例子展示了怎么去添加<DismissOverlayView> 项目:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <!-- other views go here -->

    <android.support.wearable.view.DismissOverlayView
        android:id="@+id/dismiss_overlay"
        android:layout_height="match_parent"
        android:layout_width="match_parent"/>
<FrameLayout>

In your activity, obtain the <DismissOverlayView> element and set some introductory text. This text is shown to users the first time they run your app to inform them that they can exit the app using a long press gesture. Then use a GestureDetector to detect a long press:

<翻译>在你的activity 中,获取 <DismissOverlayView> 项目然后设置一些介绍的文字。这个文字在用户第一次运行你的app的时候展示给用户通知他们他们可以通过长按的手势来推出。然后使用来检测手势。

public class WearActivity extends Activity {

    private DismissOverlayView mDismissOverlay;
    private GestureDetector mDetector;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);
        setContentView(R.layout.wear_activity);

        // Obtain the DismissOverlayView element
        mDismissOverlay = (DismissOverlayView) findViewById(R.id.dismiss_overlay);
        mDismissOverlay.setIntroText(R.string.long_press_intro);
        mDismissOverlay.showIntroIfNecessary();

        // Configure a gesture detector
        mDetector = new GestureDetector(this, new SimpleOnGestureListener() {
            public void onLongPress(MotionEvent ev) {
                mDismissOverlay.show();
            }
        });
    }

    // Capture long presses
    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        return mDetector.onTouchEvent(ev) || super.onTouchEvent(ev);
    }
}

When the system detects a long press gesture, the <DismissOverlayView> element shows an Exit button, which terminates your activity if the user presses it.

<翻译>当系统检测到了一个长按的手势的时候, <DismissOverlayView> 会显示一个推出的按钮,如果用户按了这个按钮会将你的actiivty 结束



【FnOS飞牛云 | NAS存储】旧电脑不吃灰,手把手教你搭建完全属于自己的私人网盘 打造属于自己的NAS私人网盘,亲测有效,值得一试 阅读详情

相关推荐

Ansys Zemax | 多模光纤耦合效率优化与IMAE操作数实战解析

本文详细解析了在Ansys Zemax(OpticStudio)中优化多模光纤耦合效率的实战流程。通过几何图像分析诊断初始效率,并重点介绍了如何利用IMAE操作数将分析工具转化为自动化优化引擎,实现从2%到54%的几何效率飞跃。文章还探讨了引入菲涅尔损耗与偏振计算以逼近真实效率,并分享了关键的避坑指南与高阶技巧。

xk7n92h3p5m的博客 749

android wear 常用布局,Android Wear 开发 (六) 创建自定义布局

在Android Studio中应用向导创建应用时会自动引入手表UI库。此外也可以在build.gradle中手动添加依赖声明:dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile 'com.google.android.support:wearable:+'compile 'com.google.androi...

weixin_31328555的博客 494

OpenBCI脑电实验避坑指南:如何用Python准确捕捉P300信号

本文详细介绍了使用OpenBCI和Python进行P300脑电信号实验的避坑指南,包括电极贴放、信号采集、信号处理和数据分析等关键步骤。通过实战经验和代码示例,帮助研究者避开常见陷阱,提高P300信号捕捉的准确率,适用于脑机接口和神经科学研究。

weixin_30316097的博客 552

Wear OS手表应用开发教程之-创建应用

臧克家《有的人》

滨江昔岸的博客 7848

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

SpringBoot集成SpringSecurity5和OAuth2 — 2、OAuth2客户端【SSO单点登录时作为客户端】

Mr_XiMu的博客 3742

钢铁雄心4存档修改全攻略:从基础设置到高级玩法(附国家代码表)

本文详细解析《钢铁雄心4》存档修改技巧,从基础设置到高级玩法全覆盖。包括存档文件位置、格式转换、国家实力调整、国际关系修改等实用内容,并附赠国家代码表。掌握存档修改技能,解锁游戏全部潜力,实现精细参数控制,超越控制台指令的局限。

weixin_29233857的博客 1433

Android NDK开发详解Wear之绘制表盘

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架 API 开发应用。

hnjzfwy的博客 525

ThingsKit物联网平台产品管理之物模型

物模型是ThingsKit物联网平台为产品定义的数据模型,用于描述产品的功能。本文介绍物模型相关概念和使用限制。

云腾五洲官方博客 1174

AndroidWear开发之HelloWorld篇

通过前一篇的学习,我们把环境都搭建好了,这下我们就可以正真的开发了。 一、创建Wear项目 通过项目创建向导一步一步下去就可以创建好一个Wear项目: 1.新建项目,一次填入应用名字,应用包名,项目位置,搞android都很熟悉的。 2.这里我们选择Wear SDK 3.创建一个WearActivity,启动Activity入口 4.起好名字,我们默认就可以了。 二、...

weixin_33672109的博客 196

深度学习简介(框架)

深度学习是一种基于人工神经网络的机器学习方法,它通过模拟人脑的工作原理来解决复杂的数据模式识别问题。这种方法在图像识别、语音识别、自然语言处理等领域取得了显著的进展。深度学习是机器学习的一个子领域,它基于人工神经网络的学习算法,特别是那些具有多层(深层)结构的网络。这些深度神经网络能够学习数据的高级特征和模式。深度学习作为人工智能的关键驱动技术,已经在多个领域展现出其强大的能力。随着研究的深入和技术的发展,深度学习将继续推动人工智能的边界向前发展。

2301_77539454的博客 5351

定位教程0---定位初介绍

定位教程0---定位算子介绍

Quintin 1万+

Android Wear 进阶 - 3.1 Creating Custom UIs for Wear Devices-Defining Layouts 创建自定义的手表设备UIs-定义布局

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1:定义布局 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Defining Layouts Pr

Kodulf的专栏 1107

SAP_ABAP_SD_BAPI清单案例教程——销售订单开票_BAPI_BILLINGDOC_CREATEMULTIPLE_VF01_S4版本

SAP BAPI(Business Application Programming Interface)是SAP系统中的一组规范和标准,用于从SAP系统中获取数据、输入数据和更新数据。这些API允许开发者以编程方式与SAP系统交互,而无需编写大量的自定义代码。2.1 Copy代码 直接可使用。2.2 VF01开票。

java_zhong1990的专栏 2214

android Wearable-Creating Custom UIs for Wear Devices

Apps for wearables should follow the Android Wear design principles and implement the recommended UI patterns, which ensure a consistent user experience across apps that is optimized for wearables

ShareUs的专栏 609

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android NDK开发详解Wear之对话框和列表

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架 API 开发应用。

hnjzfwy的博客 1014

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 创建列表,Android创建列表列表

我正在开发应用程序,我需要创建一个列表列表。例如EmployeeGroup1 GroupName,GroupId,JobTypeEmpployee1名称,名称Empployee2名称,名称Empployee3名称,名称Empployee4名称,名称EmployeeGroup2 GroupName,GroupId,JobTypeEmpployee5名称,名称Empployee6名称,名称Empplo...

weixin_35860675的博客 425

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Wear OS手表应用开发教程之-自定义导航栏布局-WearableDrawerView(动态控制)

本文目录 点击直达Wear OS手表应用开发系列教程 点击直达本文标签`路过的年轻人啊,你是要用左手点个赞呢,还是要右手点个关注呢`前言:效果展示:使用方法:结语:最后我还有一句话要说:山有木兮木有枝,心悦君兮君不知。 Wear OS手表应用开发系列教程 点击直达 Wear OS手表应用开发教程之-创建应用 Wear OS手表应用开发教程之-创建环形滚动列表-WearableRecyclerView Wear OS手表应用开发教程之-禁止全屏滑动返回Activity Wear OS手表应用开发教程之-侧

滨江昔岸的博客 1316

Android Wear 控件——WearableListView(附Demo)

WearableListView是适用于android小型设备如智能手表显示列表的组件,可以村子滚动,非常方便的在只能手表上显示列表控件,每次显示三个列表在屏幕中间位置。 它继承RecyclerView,实现了OnScrollListener接口。 public class WearableListView extends android.support.v7.widget.RecyclerV

石佛永不老 4458

Android NDK开发详解Wear之处理不同的手表形状

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架 API 开发应用。

hnjzfwy的博客 1144

Android Wear开发步骤

开发环境搭建 连接手持设备与穿戴设备模拟器到开发环境 创建Android Wear项目 手持设备与穿戴设备的通知同步 支持语音输入的通知 多条通知 开发环境搭建 AndroidWear开发环境与Android的开发环境一样,都是基于AndroidSDK的,但是官方建议使用AndroidStudio作为IDE(集成开发环境)。使用AndroidStudio可以非常方便...

空名先生 1万+

Android NDK开发详解Wear之表盘复杂功能

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架 API 开发应用。

hnjzfwy的博客 447

安卓 创建手表wear应用 并实现与app蓝牙通讯

记忆力下降的厉害,年前做的demo,年后就忘了差不多了,当然也有一部分原因是因为这个年假确实有点长,,,,whatever,还是写个博客记录一下,忘了也有地方找

zpbshine的博客 2072

Android NDK开发详解Wear之Wear OS 上的通知

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架 API 开发应用。

hnjzfwy的博客 1145

android wear OS 记事本

android-wear os 记事本开发wear-OS 记事本sqllite+recyclerview的基本使用一、创建项目二、构建activity,继承wearableactivity三、根布局适配四、添加列表视图五、跳转按钮六、创建不同类别的包七、创建第二个activity八、完善主页布局文件,添加了一个swiperefresh九、日记编写页面的搭建十、常量类的创建十一、实体类的创建十二、数据库的操作十三、编写自定义alterdialog十四、列表条目布局文件的编写十五、编写适配器长按弹出提示框,删除

Willow_Spring的博客 1328

android wear app开发教程,Android Wear入门开发之BoxInsetLayout

前面地基基本构建完成,接下来肯定要开始布局咯,所以咱今天要介绍的就是xml布局需要用到的控件BoxInsetLayout。在phone开发的时候,常用组件一般都是RelativeLayout,LineaLayout,FrameLayout等作为父控件,这些控件直接在手表中由于边缘的问题导致布局并不是你想要的那样。例如我在布局中放入三个控件:我在布局中放置了三个控件,但是很奇葩 运行的结果居然是这样...

weixin_42509105的博客 649

安卓穿戴项目(一)

原文:zh.annas-archive.org/md5/C54AD11200D923EEEED7A76F711AA69C 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 Android Wear 2.0 是针对可穿戴智能设备的一个强大平台。从 Wear 发布之日起,Wear 2.0 使可穿戴设备市场的新设备激活率接近 72%。谷歌正在与多个标志性品牌合作,为智能手表带来最佳用户体验。市场上新设备的穿戴硬件不断改进,展示了穿戴设备所具有的潜力。谷歌通过材料设计、独立应用程序、表盘创新等,引入了一种

龙哥盟 864
上一篇: 6.10 Android 推送 极光推送
下一篇: 2.0.2 软件工程的瀑布模型
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值