Android---悬浮框(PopupWindow)的弹出及屏幕变为半透明
2016-04-05 16:59
337 查看
先来说PopupWindow窗口的弹出,设计的重要类有,WindowManager(Android的窗口机制基类)和PopupWindow(悬浮框)
代码如下:
代码如下:
public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.headline_reback://返回键 Intent intent = getIntent(); setResult(0); finish(); overridePendingTransition(R.anim.left_in,R.anim.right_out); break; case R.id.qr_code://点击二维码弹出 LayoutInflater inflater = this.getLayoutInflater(); LayoutInflater inflater2 = this.getLayoutInflater(); //得到界面视图 View currean_View = inflater.inflate(R.layout.activity_about_self, null); //得到要弹出的界面视图 View view = inflater2.inflate(R.layout.qrcode_share, null); WindowManager windowManager = getWindowManager(); int width = windowManager.getDefaultDisplay().getWidth(); int heigth = windowManager.getDefaultDisplay().getHeight(); Log.i("width", width+""); Log.i("height", heigth+""); PopupWindow popupWindow = new PopupWindow(view,(int)(width*0.8),(int)(heigth*0.5)); popupWindow.setFocusable(true); popupWindow.setOutsideTouchable(true); popupWindow.setBackgroundDrawable(new BitmapDrawable()); //显示在屏幕中央 popupWindow.showAtLocation(currean_View, Gravity.CENTER, 0, 40); //popupWindow弹出后屏幕半透明 BackgroudAlpha((float)0.5); //弹出窗口关闭事件 popupWindow.setOnDismissListener(new popupwindowdismisslistener()); break; default: break; } } //设置屏幕背景透明度 private void BackgroudAlpha(float alpha) { // TODO Auto-generated method stub WindowManager.LayoutParams l = this.getWindow().getAttributes(); l.alpha = alpha; getWindow().setAttributes(l); } //点击其他部分popwindow消失时,屏幕恢复透明度 class popupwindowdismisslistener implements PopupWindow.OnDismissListener{ @Override public void onDismiss() { // TODO Auto-generated method stub BackgroudAlpha((float)1); } }
相关文章推荐
- Android实现点击通知栏后,先启动应用再打开目标Activity
- om.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException
- AndroidStudioSDK下tools下各个文件(夹)的用处
- Android View的 滑动冲突及工作流程
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android中的Surface和SurfaceView之我见
- NFD for Android环境配置
- Android的BroadcastReciver收不到Broadcast(系统广播)的原因之一
- Android_studio安装步骤
- Android Studio 快捷键
- Android 防止控件被重复点击,多次提交
- Android 全局异常捕获的完整实践
- android中关于weight宽度的算法
- Android视图优化之Merge,ViewStub基本使用
- 打开系统图库
- 自定义view之圆点progressBar
- [Android] 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
- Android中TextWatcher afterTextChanged无限迭代异常
- android 动画代码实现
- Android的性能模式:救援技巧