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) 也会变暗。   有解决此方法的小伙伴,希望稍微指点下~   多谢!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值