Popupwindow 显示, 其它背景变暗。 并加上点击事件 ~ (用于记录)

public class MainActivity extends Activity implements OnClickListener {

protected int mScreenWidth;

protected int mScreenHeight;

private PopupWindow popupwindow;

private Button button;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button) findViewById(R.id.button1);

button.setOnClickListener(this);

//获取当前屏幕宽高

DisplayMetrics metric = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metric);

mScreenWidth = metric.widthPixels;

mScreenHeight = metric.heightPixels;

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.button1:

if (popupwindow != null&&popupwindow.isShowing()) {

popupwindow.dismiss();

return;

} else {

initmPopupWindowView();

popupwindow.showAsDropDown(v, 0, 5);

}

break;

default:

break;

}

}

public void initmPopupWindowView() {

// 获取自己定义布局文件pop.xml的视图

View customView = getLayoutInflater().inflate(R.layout.popview_item,

null, false);

// 创建PopupWindow实例,是宽度和高度

popupwindow = new PopupWindow(customView , mScreenWidth , 600);

popupwindow.setAnimationStyle(R.style.AnimationFade);

WindowManager.LayoutParams params= getWindow().getAttributes();

params.alpha=0.5f;

getWindow().setAttributes(params);

popupwindow.setOutsideTouchable(true);

popupwindow.setFocusable(true);

popupwindow.setTouchable(true);

//    popupwindow.setBackgroundDrawable(new BitmapDrawable());

// 自己定义view加入触摸事件

customView.setOnTouchListener(new OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

closePopupWindow();

System.out.println("44444444444444444444");

return false;

}

});

/** 在这里能够实现自己定义视图的功能 */

Button btton2 = (Button) customView.findViewById(R.id.button2);

Button btton3 = (Button) customView.findViewById(R.id.button3);

btton2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Intent intent2 = new Intent(MainActivity.this,A.class);

startActivity(intent2);

popupwindow.dismiss();

}

});

btton3.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

Intent intent3 = new Intent(MainActivity.this,B.class);

startActivity(intent3);

popupwindow.dismiss();

}

});

}

/**

* 关闭窗体

*/

private void closePopupWindow()

{

if (popupwindow != null && popupwindow.isShowing()) {

popupwindow.dismiss();

popupwindow = null;

WindowManager.LayoutParams params= getWindow().getAttributes();

params.alpha=1.0f;

getWindow().setAttributes(params);

}

}

}

图1:

图2:

布局文件: activity_mian.xml

<LinearLayout

android:id="@+id/a_c"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#C0C0C0"

>

<Button

android:id="@+id/button1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentTop="true"

android:gravity="center"

android:text="点击下拉列表" />

</LinearLayout>

还有一个xml里 。就两个button , 没什么好贴的。

http://download.csdn.net/detail/u012062810/8897455 下载地址

点击popwindow 的时候,  ”点击下拉表“ (如图1) 也会变暗。

有解决此方法的小伙伴,希望略微指点下~   多谢。

时间: 2024-12-14 18:11:57

Popupwindow 显示, 其它背景变暗。 并加上点击事件 ~ (用于记录)的相关文章

My97DatePicker日历的平面显示,不是文本框点击事件后显示

二. 功能及示例 2. 特色功能 平面显示 日期控件支持平面显示功能,只要设置一下eCont属性就可以把它当作日历来使用了,无需触发条件,直接显示在页面上 示例2-1 平面显示演示 <div id="div1"></div> <script> WdatePicker({eCont:'div1',onpicked:function(dp){alert('你选择的日期是:'+dp.cal.getDateStr())}}) </script>

弹出PopupWindow背景变暗的实现

弹出PopuoWindow后 代码里设置的是PopupWindow默认获取焦点 所以PopupWindow显示的时候其它控件点击是没有反应的 用到的方法是 pwMyPopWindow.setFocusable(true); 代码里还设置了 pwMyPopWindow.setBackgroundDrawable(this.getResources().getDrawable( R.mipmap.ic_launcher));// 设置背景图片,不能在布局中设置,要通过代码来设置pwMyPopWind

实现点击menu键popupWindow显示和消失

转载请注明出处,谢谢 http://blog.csdn.net/harryweasley/article/details/45217273 最近想实现一个这样的功能:点击menu键,popupWindow显示出来,再点击menu键,popupWindow消失,同时也可以点击正常的按钮使popupWindow出来和消失. 我说的是不是有点乱,那就看下具体的效果图,就像微信的这个效果一样的,如图所示: 这个popupWindow既可以通过点击"+"号出来,也可以点击menu键出来,当然也可

Android-实现底部弹出PopupWindow并让背景逐渐变暗

Android-实现底部弹出PopupWindow并让背景逐渐变暗 在android开发中,经常需要通过点击某个按钮弹出对话框或者选择框,通过Dialog或者PopupMenu.PopupWindow都能实现. 这里主要介绍后两者:PopupMenu.PopupWindow的实现. 先看两个效果图左边PopupMenu,右边PopupWindow: Android-实现底部弹出PopupWindow并让背景逐渐变暗 一PopupMenu实现 二PopupWindow实现 一.PopupMenu实

popupWindow弹出窗口的完美实现(实现弹出背景变暗效果)

最近尝试使用popupWindow实现背景变暗效果,自己优化了一下,并封装成一个可以调用的方法,默认实现弹出窗口显示在传入view的下方,以下代码有详细注释,有问题可以留言 展示效果如下: /** * 我封装的这个popupwindow的方法, * 第一个参数是他要显示在哪个控件下面 * 第二个参数是要填充到popupWindow中的布局文件id * 第三个参数是要给popupWindow设置的背景资源id */ private void showPopWindow(View v,int con

PopupWindow弹出框与背景变暗的实现(附带动画效果)

效果图: 1,定义popupWindow 布局 2,在mainactivity.xml 中设置 用来显示 popupwindow的 布局 3,MainActivity当中 设置popupwindow的 监听事件 4 设置popupWindow 显示的动画效果 out_fromtop.xml in_fromtop.xml ok 下载源码  版权声明:本文为博主原创文章,未经博主允许不得转载.

设置popWindow背景变暗

1.//popWindow命名为window. //首先给window设置一个背景颜色 ColorDrawable cd = new ColorDrawable(0x000000);  window.setBackgroundDrawable(cd);  // 产生背景变暗效果,设置透明度  WindowManager.LayoutParams lp = getWindow().getAttributes();  lp.alpha = 0.4f; //之前不写这一句也是可以实现的,这次突然没效果

Android PopupWindow显示位置和显示大小

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:bac

js弹窗 js弹出DIV,并使整个页面背景变暗

1.首先写一个遮罩层div,然后再写一个弹窗的div <!-- 遮罩层 --> <div id="cover" style="background: #000; position: absolute; left: 0px; top: 0px; width: 100%; filter: alpha(opacity=30); opacity: 0.3; display: none; z-index: 2 "> </div> <!