如何在android中为弹出窗口制作滚动动画效果

时间:2016-01-12 09:45:56

标签: android android-animation

我正在开发Android应用程序,我试图从屏幕顶部应用一些滚动效果弹出窗口但不知道如何实现但目前我正在添加一些其他动画效果 这是我的弹出窗口功能代码

    private void loadingPopup() {

        LayoutInflater inflater = getActivity().getLayoutInflater();
        final View layout = inflater.inflate(R.layout.profile_popup, null);

        final PopupWindow windows = new PopupWindow(layout , 450,650,true);
        windows.setFocusable(false);
        windows.setTouchable(true);
        windows.setOutsideTouchable(true);
        windows.setAnimationStyle(R.style.AnimationPopup);
        layout.post(new Runnable() {
            public void run() {
                windows.showAtLocation(layout, Gravity.TOP, 0, 0);
            }
        });

        name = (TextView)layout.findViewById(R.id.name);
        profilepicture =(ImageView)layout.findViewById(R.id.profileimage);

            String  sname = profilelistdb.get(0).get("pname");
            name.setText(sname);
            String imagename =  profilelistdb.get(0).get("pimage");
            String totalurl =  imageurl+imagename;
            imageLoader1.DisplayImage(totalurl, profilepicture);

        btnClosePopup = (Button) layout.findViewById(R.id.btn_close_popup);
        btnClosePopup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                windows.dismiss();

            }
        });
  }

这是 Style.xml

<style name="AnimationPopup">
     <item name="@android:windowEnterAnimation">@anim/appear</item>
</style>

appear.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >

        <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromYDelta="50%p" android:toYDelta="0%p"
        android:duration="@android:integer/config_longAnimTime"/>
</set>

我的要求: -      我的弹出窗口应该来自顶部,有滚动类型的东西,每当用户点击关闭按钮时,它应该隐藏带有反向滚动效果的弹出窗口,请你帮我解决这个问题。

如果你不明白我想说的滚动 只需查看此链接即可查看30秒 https://www.youtube.com/watch?v=KSHVSswMUng这正是我所需要的。

1 个答案:

答案 0 :(得分:0)

您可以使用此library。它适用于Android中的View Animations,效果很好。然后使用它:

YoYo.with(Techniques.RollIn)
    .duration(700)
    .playOn(findViewById(R.id.edit_area));


YoYo.with(Techniques.RollOut)
    .duration(700)
    .playOn(findViewById(R.id.edit_area));

或者亲自试验,看看哪种看起来最好。

编辑:我不确定如何实现您所看到的特定滚动效果,因为我看到了它的视频,但如果您找不到它,我相信您我会在这个库里找到一些看起来不错的东西。祝你好运。