如何在Android Wear上实现"在手机上打开"动画

Chr*_*vik 11 wear-os

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

"如果必须使用手机,一旦点击操作按钮,就会播放通用动画,并在手机上打开相应的Android应用程序."

动画可以在Google Keep应用中看到.以下是录制示例:https: //dl.dropboxusercontent.com/u/25670071/IMG_0274.MOV

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

Mac*_*ęga 30

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

电话通知:

如果您的通知来自电话 - 当您的通知设置了setContentIntent(PendingIntent intent)时,会自动添加"在电话上打开"操作页面.

来自您的可穿戴应用:

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

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

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

你应该感兴趣的动画是ConfirmationActivity.OPEN_ON_PHONE_ANIMATION.你需要传递ConfirmationActivity.EXTRA_ANIMATION_TYPE额外的动画类型.

Intent intent = new Intent(context, ConfirmationActivity.class);
intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE, ConfirmationActivity.OPEN_ON_PHONE_ANIMATION);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

重要信息: 要启动,ConfirmationActivity您需要将其添加到您的清单文件:

<activity android:name="android.support.wearable.activity.ConfirmationActivity" />
Run Code Online (Sandbox Code Playgroud)

主题:

下一步是调整这种风格ConfirmationActivity.例如,如果要禁用默认滑动动画或使窗口透明,则需要在清单中为其设置自定义主题:

<activity android:name="android.support.wearable.activity.ConfirmationActivity"
    android:theme="@style/TransparentTheme"/>
Run Code Online (Sandbox Code Playgroud)

并定义TransparentThemethemes.xml:

<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>
Run Code Online (Sandbox Code Playgroud)

  • 转到`R.drawable.go_to_phone_animation`动画drawable并检查drawables是否有单独的帧.第一帧存储在`R.drawable.go_to_phone_00156`中,可能您可以将其用作行动的图像. (2认同)