初学之popupWindow

                              本章主要介绍popupWindow从底部向上弹出并实现背景变灰和点击屏幕消失的效果

               1. activity 代码

        public class MainActivity extends Activity implements OnDismissListener {

private PopupWindow popupwindow;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


public void dianji(View view) {
showPopup(view);
}


private void showPopup(View view) {
initPopup();
popupwindow.showAtLocation(view, Gravity.BOTTOM, 0, 0);
showBackground(0.7f);
}


private void initPopup() {
View popupwindow_view = View.inflate(MainActivity.this,                //popupWindow的布局
R.layout.aty_popup, null);


popupwindow = new PopupWindow(popupwindow_view,LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, true);     //创建popupWindow的创建

popupwindow.setAnimationStyle(R.style.popup_animation);                  //设置popupWindow的样式  也就是动画效果

popupwindow.setOnDismissListener(this);                                  //popupWindow销毁的监听
      popupwindow.setOutsideTouchable(true);                                   //设置点击窗口外边窗口消失  

ColorDrawable dw = new ColorDrawable(0xffffff);                    
popupwindow.setBackgroundDrawable(dw);                                   
}

    //      更改背景颜色
public void showBackground(float alpha) {
WindowManager.LayoutParams params = getWindow().getAttributes();
params.alpha = alpha;
getWindow().setAttributes(params);
}


@Override
public void onDismiss() {
showBackground(1.0f);
}

}


        2.style代码

      <style name="popup_animation">
        <item  name="android:windowEnterAnimation">@anim/popup_bottombar_in</item>   <!-- 进入动画 -->
          <item  name="android:windowExitAnimation">@anim/popup_bottombar_out</item> <!-- 退出动画 -->
       
    </style>

  

      3.anim 代码

                 popup_bottombar_in.xml

     <translate
     xmlns:android="http://schemas.android.com/apk/res/android"
  android:duration="300"
  android:fromYDelta="100%"
  android:toYDelta="0.0"
  >
</translate>

          popup_bottombar_out.xml 

<translate
 
      xmlns:android="http://schemas.android.com/apk/res/android"
  android:duration="300"
    android:fromYDelta="0.0"
    android:toYDelta="100%"
    >
</translate>

    






  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值