【问题标题】:How to implement "Open on phone" animation on Android Wear如何在 Android Wear 上实现“在手机上打开”动画
【发布时间】:2014-10-02 01:11:21
【问题描述】:

根据指南: https://developer.android.com/design/wear/patterns.html#Continuing

“在必须使用手机的情况下,点击操作按钮后,应播放通用动画,手机上将打开相应的 Android 应用程序。”

可以在 Google Keep 应用中看到动画。这是一个示例记录: https://dl.dropboxusercontent.com/u/25670071/IMG_0274.MOV

在某个地方有这个动画的标准实现吗?

【问题讨论】:

    标签: wear-os


    【解决方案1】:

    实现此功能所需的步骤取决于通知是从手机提交还是从可穿戴设备提交。

    电话通知:

    如果您的通知来自手机 - 当您的通知设置了setContentIntent(PendingIntent intent) 时,会自动添加“在手机上打开”操作页面。

    来自您的可穿戴应用:

    如果您需要在直接从可穿戴设备(或从您的可穿戴应用程序的任何其他位置)提交的通知中播放此动画,您需要自己启动此动画。

    有一个很好的 ConfirmationActivity 支持一些预定义的动画类型:

    • ConfirmationActivity.SUCCESS_ANIMATION
    • ConfirmationActivity.OPEN_ON_PHONE_ANIMATION
    • ConfirmationActivity.FAILURE_ANIMATION

    你应该感兴趣的动画是ConfirmationActivity.OPEN_ON_PHONE_ANIMATION。需要在ConfirmationActivity.EXTRA_ANIMATION_TYPE extra 中传递动画的类型。

    Intent intent = new Intent(context, ConfirmationActivity.class);
    intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE, ConfirmationActivity.OPEN_ON_PHONE_ANIMATION);
    startActivity(intent);
    

    重要提示: 要启动ConfirmationActivity,您需要将其添加到您的清单文件中:

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

    主题:

    下一步是调整ConfirmationActivity 的样式。例如,如果您想禁用默认滑动动画或使窗口透明,则需要在清单中为其设置自定义主题:

    <activity android:name="android.support.wearable.activity.ConfirmationActivity"
        android:theme="@style/TransparentTheme"/>
    

    并在themes.xml 中定义TransparentTheme

    <style name="TransparentTheme" parent="@android:style/Theme.DeviceDefault">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@null</item>
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
    </style>
    

    【讨论】:

    • 如果知道在 SDK 中的哪个位置可以获取股票“在手机上打开”drawable,那也很棒。
    • @Warlax Animation 位于可绘制对象:R.drawable.go_to_phone_animation。您可以使用它来构建您的自定义界面,但前提是您有充分的理由不使用标准 ConfirmationActivity :)
    • 哦,我不清楚我的问题。我的意思是一个可用于传递到 Action 的可绘制对象,因此它看起来像股票“在手机上打开”操作。
    • 转到R.drawable.go_to_phone_animation 动画drawable 并检查drawable 是否有单独的帧。第一帧存储在R.drawable.go_to_phone_00156,也许你可以将其用作动作图像。
    • 禁用 ConfirmationActivity 的默认滑动动画的更简单方法是在启动它的意图上添加 Intent.FLAG_ACTIVITY_NO_ANIMATION 标志。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多