android 사 이 드 팝 업 창 필터 코드 구현

5150 단어 android측면탄창
안녕하세요?또 저 입 니 다.몽 신 작업실 의 영 입 니 다.오늘 안 드 로 이 드 의 사 이 드 팝 업 창 을 어떻게 실현 하 는 지 설명해 드 리 겠 습 니 다.
먼저 기본 원 리 를 대충 말씀 드 리 겠 습 니 다.사실은 간단 합 니 다.바로 출입 동 효과 입 니 다.변위 로 투명 도 를 높이 는 것 이 좋 습 니 다.
예 를 들 어 당신 의 사 이 드 팝 업 창 은 왼쪽 에 있 습 니 다.그것 은 바로 왼쪽 에서 오른쪽으로 100%(동 효 목표 의 너비 나 높이 를 대표 합 니 다)입 니 다.
하지만 주의해 야 할 것 은:
초기 위 치 는 반드시 마지막 에 표시 해 야 할 위치 입 니 다.이 View 를 Margin 이나 다른 위치 로 옮 기지 마 십시오.그렇지 않 으 면 효과 가 끝 난 후에 보 기 를 클릭 하면 응답 이 없습니다.이때 View 는 초기 위치 에 있 기 때문에 View 를 클릭 하면 애니메이션 만 수 정 된 위치 가 잘못 되 었 습 니 다.속성 애니메이션 을 사용 하지 않 는 한.
다음은 나의 레이아웃 을 살 펴 보고 간단하게 하나 썼 다.
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <RelativeLayout
        android:id="@+id/rel_dialog_back"
        android:background="#B3000000"
        android:layout_width="match_parent"
        android:layout_height="match_parent"  >


        <!--        -->
        <LinearLayout
            android:layout_alignParentRight="true"
            android:id="@+id/lin_dialog_content"
            android:layout_width="400dp"
            android:layout_height="match_parent"
            android:padding="10dp"
            android:background="#FFFFFF"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:text="    "
                android:textColor="@color/colorAccent"
                android:gravity="center"
                android:textSize="80sp"
                android:layout_gravity="center"/>

        </LinearLayout>


    </RelativeLayout>


</androidx.constraintlayout.widget.ConstraintLayout>
그 다음 에 res/anim 에서 애니메이션 파일 을 쓰 는 것 입 니 다.
dialog_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:interpolator="@android:anim/decelerate_interpolator">
    <!--     :    0    1     -->
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0" >
    </alpha>
	<!-- 100%          , 0%         -->
   <translate
       android:fromXDelta="100%" 
       android:toXDelta="0%">
   </translate>

</set>
dialog_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:interpolator="@android:anim/decelerate_interpolator">
    <!--     :    0    1     -->
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0" >
    </alpha>

    <translate
        android:fromXDelta="0%"
        android:toXDelta="100%">
    </translate>

</set>
마지막 으로 코드 가 애니메이션 을 터치 합 니 다:

final Animation anim = AnimationUtils.loadAnimation(this, R.anim.dialog_in);
        anim.setDuration(300);
        anim.setFillAfter(true);
        view.startAnimation(anim );

        anim.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
            //     ,         ,    View    View.GONE           
                view.clearAnimation();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
사실은 한 단계 더 올 라 갈 수 있 습 니 다.화면 왼쪽 부분의 제스처 를 감청 할 수 있 습 니 다.누 르 는 점 과 들 어 올 리 는 기점 사이 의 가로 거리 가 일정한 값 에 이 르 렀 을 때 시작 합 니 다.애니메이션 에 입장 하거나 애니메이션 에 등장 하면 제스처 를 통 해 사 이 드 팝 업 창 을 터치 하거나 닫 는 효 과 를 얻 을 수 있 습 니 다.전체적으로 간단 합 니 다.여러분 이 한번 해 보 세 요.
이상 은 안 드 로 이 드 가 사 이 드 팝 업 창 필터 코드 를 실현 하 는 상세 한 내용 입 니 다.안 드 로 이 드 사 이 드 팝 업 창 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기