Java Android没有设置相对布局的动画

Java Android没有设置相对布局的动画,java,android,android-animation,android-relativelayout,Java,Android,Android Animation,Android Relativelayout,我正在创建一个相对的布局,我想应该从上面滑入布局,所以这里是我所做的 使布局不可见 在oncreate中,为屏幕上方的布局设置动画 在onWindowsFocusChanged()中,我调用了动画,使布局可见,并希望布局滑入屏幕 但是 创建视图时,布局位于正确位置,不会显示来自屏幕顶部的任何滑动效果 public class OverlayActivity extends Activity implements View.OnClickListener { RelativeLayout qu

我正在创建一个相对的布局,我想应该从上面滑入布局,所以这里是我所做的

  • 使布局不可见
  • 在oncreate中,为屏幕上方的布局设置动画
  • 在onWindowsFocusChanged()中,我调用了动画,使布局可见,并希望布局滑入屏幕
  • 但是

    创建视图时,布局位于正确位置,不会显示来自屏幕顶部的任何滑动效果

    public class OverlayActivity extends Activity implements View.OnClickListener {
      RelativeLayout question_box;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_overlay);
    // Slide Up the INVISIBLE layout so that I can call it by animation back to its original position
    
            question_box = findViewById(R.id.question_box);
            question_box.animate().translationY(-question_box.getHeight());
    
    
            final Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
          
        }
    
        public void animateInObjects() {
            question_box.setVisibility(View.VISIBLE);
            question_box.animate().setDuration(1000).translationY(0);
        }
    
        @Override
        public void onClick(View v) {
    //Some Code
        }
    
        @Override
        protected void onStop() {
            super.onStop();
            finish();
        }
    
        @Override
        public void onWindowFocusChanged(boolean hasFocus) {
            animateInObjects();
            super.onWindowFocusChanged(hasFocus);
        }
    
    }
    
    布局

    
        <RelativeLayout
            android:id="@+id/question_box"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:layout_marginTop="5dp"
            android:layout_below="@+id/ad_view_container"
            android:visibility="invisible">
    
            <TextView
                android:id="@+id/question"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/questiontext"
                android:paddingStart="20dp"
                android:paddingTop="7dp"
                android:paddingEnd="20dp"
                android:paddingBottom="20dp"
                android:text="@string/sample_question"
                android:textAlignment="center"
                android:textColor="@color/text_quest"
                android:textSize="23sp" />
    
            <View
                android:id="@+id/center_vertical"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_centerVertical="true" />
    
            <LinearLayout
                android:id="@+id/cover_opt1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/question"
                android:layout_marginStart="15dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/main_layout">
    
                <Button
                    android:id="@+id/opt1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginVertical="1dp"
                    android:layout_marginHorizontal="2dp"
                    android:background="@android:color/transparent"
                    android:text="@string/sample_number"
                    android:textAlignment="center"
                    android:textColor="@color/text_quest"
                    android:textSize="18sp" />
            </LinearLayout>
    
            <LinearLayout
                android:id="@+id/cover_opt2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/question"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="10dp"
                android:background="@drawable/main_layout">
    
                <Button
                    android:id="@+id/opt2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginVertical="1dp"
                    android:layout_marginHorizontal="2dp"
                    android:background="@android:color/transparent"
                    android:text="@string/sample_number"
                    android:textAlignment="center"
                    android:textColor="@color/text_quest"
                    android:textSize="18sp" />
            </LinearLayout>
    
            <LinearLayout
                android:id="@+id/cover_opt3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/question"
                android:layout_alignParentEnd="true"
                android:layout_marginTop="10dp"
                android:layout_marginEnd="15dp"
                android:background="@drawable/main_layout">
    
                <Button
                    android:id="@+id/opt3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginVertical="1dp"
                    android:layout_marginHorizontal="2dp"
                    android:background="@android:color/transparent"
                    android:text="@string/sample_number"
                    android:textAlignment="center"
                    android:textColor="@color/text_quest"
                    android:textSize="18sp" />
            </LinearLayout>
    
        </RelativeLayout>
    
    
    
    这是活动的主题

    <style name="Theme.Lockscreen" parent="Theme.AppCompat.NoActionBar">
            <item name="android:background">#33000000</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:colorBackgroundCacheHint">@null</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowAnimationStyle">@android:style/Animation</item>
        </style>
    
    
    #33000000
    符合事实的
    @android:彩色/透明
    @空的
    符合事实的
    @android:风格/动画
    
    您可以尝试使用onCreate方法设置视图的动画。首先,视图尚未绘制,您会得到一个
    getHeight=0
    。因此,当使用
    view.getViewTreeObserver().addOnGlobalLayoutListener绘制视图时,您必须等待,才能为其设置动画

    您需要在onCreate()上添加以下内容:


    您可以尝试使用onCreate方法设置视图的动画。首先,视图尚未绘制,您会得到一个
    getHeight=0
    。因此,当使用
    view.getViewTreeObserver().addOnGlobalLayoutListener绘制视图时,您必须等待,才能为其设置动画

    您需要在onCreate()上添加以下内容:

    尝试将其作为您的xml

    <?xml version="1.0" encoding="utf-8"?>
    
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
          android:fromYScale="0"
          android:toYScale="50%"
          android:duration="1000"></scale>
    </set>
    
    
    
    要将其保留到屏幕的一半并分别排列布局,请尝试将其作为xml

    <?xml version="1.0" encoding="utf-8"?>
    
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
          android:fromYScale="0"
          android:toYScale="50%"
          android:duration="1000"></scale>
    </set>
    
    
    

    要将其保留到屏幕的一半,并分别排列布局

    是的,我将值设为100,它位于该位置,但没有显示任何滑动动画,就像它被传送到那个位置一样好吧,我会亲自尝试,抱歉我删除了我的评论是的,我把值设为100,它在那个位置,但它没有显示任何滑动动画,就像它被传送到那个位置一样好吧,我会亲自尝试,抱歉,我删除了我的评论