当前位置: 首页 > 知识库问答 >
问题:

在活动之间推入/推出动画

澹台星剑
2023-03-14
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

和push_left_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

在主活动Stage1Activity I中有:

public class Stage1Activity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_stage1);
    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if (keyCode == KeyEvent.KEYCODE_BACK){
            finish();
            overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}

现在,当我在活动中移动时,过渡按其应有的方式工作。新的活动将旧的活动从右推到左。我想要一个反向的效果,当用户按下他们的设备上的后退按钮,但同样的过渡动画播放出来。我玩过Android:fromxdelta标签,取得了一些非常奇怪的结果,但我不知道如何设置它,以便在按下设备上的后退按钮时,新活动(实际上是一个新调用的旧活动)将旧活动从左向右推出。

基本上,我想让它看起来像你是向右移动时,通过阶段,但当你按下后退,它应该看起来像你回到(向左)。如果这是一个愚蠢的问题,我很抱歉,但我真的弄糊涂了,我需要帮助:/

共有1个答案

欧阳昊阳
2023-03-14

回答我自己的问题有点傻我想...但我想我应该自己收拾烂摊子。我做了一些更广泛的研究,并使用了代码,我很自豪地说,我已经解决了这个问题。下面的解决方案供其他需要的人参考。

这个应用程序需要四个动画。首先,在单击Stage1Activity上的按钮时,我想向左滑动并淡出该活动,同时在Stage2Activity中从右向左滑动。这需要两个XML文件:

push_left_in.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%" android:toXDelta="0" android:duration="500"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-100%" android:duration="500"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>

push_right_in.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%" android:duration="500"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>

push_right_out.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%" android:toXDelta="0" android:duration="500"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>

这另外两个文件在overridependingTransition(r.anim.push_right_in,r.anim.push_right_out)中调用;放在onkeydown方法中,用于后退按钮响应。一个将旧的活动滑出,另一个将新的活动滑入--但与前一个动画相比方向相反。别忘了改变alpha值,因为这也发生在我身上

 类似资料:
  • 我得活动: A-Main Activity(类似于登录屏幕),在进入任何其他Activity时finish() C=其他用户内容 当我进入A>B>C,按home,从launcher启动应用程序时,我看到了C与后堆栈恢复的B>C(顶部),这里没有问题 当我转到A>B>C,按home,启动应用程序从谷歌搜索栏在主屏幕上,我看到A,与背面堆栈B>C>A(顶部)。 问题是为什么会发生这种情况,我该如何修复

  • 4.1 推送活动 新建活动 ①基本设置: 活动名称:自定义名称; 平台:可选择Mobile或PC/Pad; 推送形式:可选择通栏或弹窗; 内容:推送中所显示的文字内容; 按钮:开关按钮可显示或隐藏通栏中的按钮; 按钮链接:点击通栏推送后所跳转的目标页面网址; ②推送规则: 触发条件:点击➕添加触发条件按钮展开触发推送条件,如广告项目、事件名称、浏览页数、用户类型等;最多可添加10个条件。 推送地区

  • 4.1 推送活动 新建活动 活动名称:自定义名称; ①推送人群: 选择人群:可选择可以选择某一人群作为分析对象 回溯周期:最近3个月,含今日; ②活动创意: 图片素材:推送活动中所需上传的图片; 跳转链接:点击通栏推送后所跳转的目标页面网址; ③推送计划: 每个设备接收次数:推送后每个用户设备收到活动的次数; 推送时间段:可设置推送活动的时间范围; 效果分析 ① 基础指标 总展示次数:推送成功展示

  • 7.推广活动管理 一、推广活动管理 推广活动管理为您提供推广活动的新增、查看、修改和删除功能,主要包含推广活动管理和onelink两个功能模块。 您可以通过创建推广活动或onelink(Onelink适用于渠道只有一个广告位不分安卓和ios、线下二维码、公众号等;)获得推广短链或渠道ID,应用于您的推广活动中,从而可以在及策系统内对各推广活动数据进行监测。 二、功能介绍 1、推广活动: 支持批量导

  • 嗨,我已经尝试了一些方法来有意地在活动之间移动浮动值,但它对我不起作用,因为值会重新启动。 我的代码: 第一项活动: 第二项活动: 浮点值始终为0,并且应用程序在“第二个活动”的第二行有编译错误。 感谢帮手们!

  • 问题内容: 我是Elasticsearch的新手。在Elasticsearch中,我们几乎可以在所有查询中使用术语boost。我了解它用于修改文档分数。但是我找不到它的实际用途。我的疑问是,如果我在某些查询中使用提升值,会影响最终的搜索分数或索引本身中文档的提升排名。 索引提升和查询提升之间的主要区别是什么。 提前致谢..! 问题答案: 查询时间提升使您可以对一个查询赋予更多的权重。例如,假设您要