美文网首页Android 开发必备
关于popupWindow自上而下动画弹出

关于popupWindow自上而下动画弹出

作者: 总会颠沛流离 | 来源:发表于2019-04-17 20:31 被阅读11次

Activity中

private Button mBt;

private View mView;

private Button btnSaveProject,btnAbandonProject,btnCancelProject;

private PopupWindow popupWindow;

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    initView();

}

private void initView() {

    mBt = (Button) findViewById(R.id.bt);

  mBt.setOnClickListener(new View.OnClickListener() {

      @Override

      public void onClick(View v) {

          LayoutInflater inflater= (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

          mView = inflater.inflate(R.layout.finish_project_popuwindow, null);

          btnSaveProject = (Button) mView.findViewById(R.id.popupwindow_Button_saveProject);

          btnAbandonProject = (Button) mView.findViewById(R.id.popupwindow_Button_abandonProject);

          btnCancelProject = (Button) mView.findViewById(R.id.popupwindow_cancelButton);

          popupWindow = new PopupWindow(mView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

          // 设置按钮监听

          btnCancelProject.setOnClickListener(new View.OnClickListener() {

              @SuppressLint("LongLogTag")

              @Override

              public void onClick(View v) {

                  Log.i("xue", "取消项目");

                  popupWindow.dismiss();

}

          });

          //设置PopupWindow的View

          popupWindow.setContentView(mView);

          //设置PopupWindow弹出窗体的宽

          popupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);

          //设置PopupWindow弹出窗体的高

          popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);

          //设置PopupWindow弹出窗体可点击

          popupWindow.setFocusable(true);

          //设置SelectPicPopupWindow弹出窗体动画效果

          popupWindow.setAnimationStyle(R.style.Animation);

          //实例化一个ColorDrawable颜色为半透明

          ColorDrawable dw= new ColorDrawable(0xb0000000);

          //设置SelectPicPopupWindow弹出窗体的背景

          popupWindow.setBackgroundDrawable(dw);

          popupWindow.showAtLocation(MainActivity.this.findViewById(R.id.main), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);

}

  });

}

新建anim文件夹

enter_anim.xml中

<?xml version="1.0" encoding="utf-8"?>

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

    android:shareInterpolator="false"

    >

    <translate

        android:fromYDelta="100%p"

        android:toYDelta="0"

        android:duration="100" />

    <alpha

        android:fromAlpha="0"

        android:toAlpha="1.0"

        android:duration="100"/>

</set>

out_anim.xml中

<?xml version="1.0" encoding="utf-8"?>

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

    android:shareInterpolator="false"

    >

    <translate

        android:fromYDelta="0"

        android:toYDelta="100%p"

        android:duration="100"/>

    <alpha

        android:fromAlpha="1.0"

        android:toAlpha="0"

        android:duration="100"/>

</set>

style中

<style name="Animation">

    <item name="android:windowEnterAnimation">@anim/enter_anim</item>

    <item name="android:windowExitAnimation">@anim/out_anim</item>

</style>

相关文章

网友评论

    本文标题:关于popupWindow自上而下动画弹出

    本文链接:https://www.haomeiwen.com/subject/qweowqtx.html