如何在动画期间摆脱这个黑条?

Mic*_*ine 5 animation android transition

我正在尝试在Activity转换上执行自定义动画.该活动应该平滑地向上滑动而不是从侧面滑动.它可以工作,但视图顶部有一个黑条(与状态栏大小相同).我该如何摆脱黑条?这是我正在使用的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  overridePendingTransition(R.anim.upin, R.anim.upout);
  setContentView(R.layout.screen_login);
}
Run Code Online (Sandbox Code Playgroud)

动画upin:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="100%" android:toYDelta="0%" android:duration="500" />
</set>
Run Code Online (Sandbox Code Playgroud)

动画结束:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="0%" android:toYDelta="0%" android:duration="500" />
</set>
Run Code Online (Sandbox Code Playgroud)

编辑:如果我将所有活动全屏显示,它将完美运行.当然,我不希望所有的活动都是全屏的.

gro*_*msy 7

好的,找到了一种方法.在您要设置动画的活动中,覆盖您的onCreate方法.在你调用setContentView之前(我不知道这是否有必要,但这是我做的顺序),添加以下代码片段:

ColorDrawable colorDrawable = new ColorDrawable( Color.TRANSPARENT );
getWindow().setBackgroundDrawable( colorDrawable );
Run Code Online (Sandbox Code Playgroud)

这对我来说就像一个魅力,我还没有看到任何其他副作用.

我实际上碰到了同样的问题,偶然发现了你的问题.希望你觉得这很有帮助.

  • groomsy

编辑:测试运行2.3.4的Nexus One


Mic*_*ine 1

好吧,我尝试了一些事情,比如制作相对于父级的增量等。我认为核心问题是活动在顶部有额外的空间,也就是那个黑条。据我所知,除了将其从活动中拉出并使其成为视图之外,实际上没有什么可做的。

将该视图放入 ViewAnimator 中,然后将进出过渡设置为我已经列出的那些,效果就像一个魅力。我相当确信没有其他方法可以做到这一点。如果有人弄清楚了,请告诉我,但这解决了我的问题。