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:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图2:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

布局文件: 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) 也会变暗。

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

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

  1. 弹出PopupWindow背景变暗的实现

    弹出PopuoWindow后 代码里设置的是PopupWindow默认获取焦点 所以PopupWindow显示的时候其它控件点击是没有反应的 用到的方法是 pwMyPopWindow.setFocus ...

  2. 仿QQ空间根据位置弹出PopupWindow显示更多操作效果

    我们打开QQ空间的时候有个箭头按钮点击之后弹出PopupWindow会根据位置的变化显示在箭头的上方还是下方,比普通的PopupWindow弹在屏幕中间显示好看的多. 先看QQ空间效果图:       ...

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

    1.首先写一个遮罩层div,然后再写一个弹窗的div <!-- 遮罩层 --> <div id="cover" style="background: # ...

  4. j-query应用---鼠标悬停不同文字显示不同背景图片banner动画

    源代码部分:注意事项:样式表的引用的路径要一致. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  5. Android根据Button状态(normal,focused,pressed)显示不同背景图片

    Android根据Button状态(normal,focused,pressed)显示不同背景图片 Android中Button 有focused, selected, pressed 等不同状态,通 ...

  6. VUE2.0 饿了吗视频学习笔记(六):定位问题、文字显示、模糊背景图片、点击事件

    一.定位问题按照视频写代码时,发现元素“5个“”定位不对,如下图 正常位置为 还以为是哪里写错了,仔细研究了下,需要在父div上加relative. position:relative/absolut ...

  7. Android PopupWindow显示位置设置

    当点击某个按钮并弹出PopupWindow时,PopupWindow左下角默认与按钮对齐,但是如果PopupWindow是下图的那样,会发 生错位的情况,尤其是不同尺寸的平板上,那错位错的不是一般的不 ...

  8. 简单 JS 弹出层 背景变暗

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. UIView点击事件。弹出视图,背景虚化。

    @interface CountryViewController //背景 @property (strong, nonatomic) UIView *BackView; end //设置背景虚化 - ...

随机推荐

  1. void型指针

    void型指针,表示这个指针指向的内存中的数据的类型要由用户来指定. 比方内存分配函数malloc函数返回的指针就是void *型. 用户在使用这个指针的时候.要进行强制类型转换,也就是显式说明该指针 ...

  2. (素数求解)I - Dirichlet&#39;s Theorem on Arithmetic Progressions(1.5.5)

    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit cid=1006#sta ...

  3. ANT公布SVN WEB项目到TOMCAT以及利用post-commit自己主动提交编译更新

    开发者在本地提交更新到SVNserver后.往往须要測试人员又一次測试.为了将更新内容即时反映到測试server.能够利用post-commit脚本将SVN更新同步到測试server中. (1)利用S ...

  4. SecureCRT学习之道:SecureCRT 经常使用技巧

    快捷键: 1. ctrl + a :  移动光标到行首 2. ctrl + e :移动光标到行尾 3. ctrl + d :删除光标之后的一个字符 4. ctrl + w : 删除行首到当前光标所在位 ...

  5. Gradle之依赖管理

    Gradle之依赖管理 泡在网上的日子 / 文 发表于2015-01-29 16:12 第8824次阅读 Gradle,Android Studio 2 编辑推荐:稀土掘金,这是一个针对技术开发者的一 ...

  6. Android持久化保存cookie

    在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,这时就需要持久化cookie中的内容. 在之前先科普一下基础知识: 什么 ...

  7. hdoj--1087--Super Jumping! Jumping! Jumping!(贪心)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  8. hdoj--2069--Coin Change(动态规划)

    Coin Change Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  9. USACO 1.5 Number Triangles

    Number Triangles Consider the number triangle shown below. Write a program that calculates the highe ...

  10. 使用VMware搭建3台一模一样的Linux虚拟机

    转自:https://www.linuxidc.com/Linux/2014-08/105909.htm 简介:VMware可以在个人本地一台笔记本机器上同时运行二个或更多Windows.DOS.LI ...