老套路看效果:
核心代码就几行:
package com.example.firstapp;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import androidx.appcompat.app.AppCompatActivity;
/**
* @author Administrator
*/
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//设置页面的折叠效果
RelativeLayout rlTitleClose = findViewById(R.id.rl_title_close);
final LinearLayout scTranslateAnimation = findViewById(R.id.ll_transtraction);
rlTitleClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TranslateAnimation translateAnimation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 1.0f);
translateAnimation.setDuration(700);
translateAnimation.setFillAfter(true);
scTranslateAnimation.startAnimation(translateAnimation);
translateAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
finish();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
});
}
}
看下布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_personal_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_text"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="13" />
<LinearLayout
android:id="@+id/ll_transtraction"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="17"
android:background="@drawable/half_circular_bg"
android:orientation="vertical"&