//代码
package com.mark.pop.win;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
public class PopupWindowDemoActivity extends Activity
{
private Button pop_windowButton;
private PopupWindow menuPop=null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pop_windowButton=(Button) findViewById(R.id.pop_window);
pop_windowButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
View paopaoView = getLayoutInflater().inflate(R.layout.pop_menu, null);
//这里最关键,不在pop的View的里面找到相映的ID,还真不好关闭popWin
Button pop_play_btn=(Button) paopaoView.findViewById(R.id.play_btn);
menuPop = new PopupWindow(paopaoView, RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
menuPop.showAtLocation(pop_windowButton, Gravity.LEFT,0,-120);
pop_play_btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
closePop();
}
});
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
closePop();
return super.onTouchEvent(event);
}
private void closePop()
{
if(null!=menuPop)
{
menuPop.dismiss();
}
}
}
//pop_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_btns"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Button
android:id="@+id/play_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_menu_pause" /><!--这个依旧是布局-->
<Button
android:id="@+id/sound_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_menu_sound" /><!--布局-->
<Button
android:id="@+id/help_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_menu_help" /><!--布局-->
<Button
android:id="@+id/about_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_menu_about" /><!--布局-->
<Button
android:id="@+id/home_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_menu_home" /><!--布局-->
</LinearLayout>
//button_menu_pause.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@drawable/pause_menu_1" /><!--未按下时-->
<item
android:state_pressed="true"
android:drawable="@drawable/pause_menu_2" /><!--已按下时-->
<item
android:state_focused="true"
android:drawable="@drawable/pause_menu_2" /><!--已点击时-->
<item
android:drawable="@drawable/pause_menu_1" /><!--这个就是图片了 default-->
</selector>
//button_menu_sound.xml
同上
//button_menu_help.xml
同上
//button_menu_about.xml
同上
分享到:
相关推荐
Android PopupWindow使用示例,更多信息请访问http://blog.csdn.net/qingdujun/article/details/42609549
android中popupWindow使用案列。点击按钮,显示出菜单按钮。
android popupwindow 底部灰色背景
android PopupWindow的使用(带动画效果)源码
Android PopupWindow实现右侧、左侧和底部弹出菜单 效果图:http://blog.csdn.net/jianfengwen/article/details/48629217
主要介绍了Android PopupWindow使用实例,本文直接给出代码实例,需要的朋友可以参考下
Android PopupWindow与Activity之间的数据传递
Android popupwindow 实例及使用
Android从屏幕底部滑动弹出PopupWindow,有动画效果,类似于sharesdk的分享页面滑动弹出效果。
Android PopupWindow显示在控件上方或者下方,完整的例子下载分享给有需要的人;内部填充数据用的自定义LinearLayout,可以动态添加标题,在Activity中处理回调方法.项目中摘取,有些冗余代码,亲要自己简单处理下哦...
安卓中的弹窗的Demo,有几种不同类型的弹窗PopupWindow
Android PopupWindow泡泡效果(有listview)
主要为大家详细介绍了Android PopupWindow使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在android 开发中,让popupwindow 弹出在点击按钮的上方中间; 说明文档见我的博客
Android PopupWindow的使用详解 http://blog.csdn.net/yalinfendou博客中有详细介绍……
在PopupWindow上实现图片的缩放
经过多番测试实践,实现了popupwindow 弹出在指定控件的下方。代码上有注释,有需要注意的地方。popupwindow 有自已的布局,里面控件的监听实现都有。
android 封装一个通用PopupWindow,避免重复造轮子,简化代码,方便管理。
android通过使用popupwindow控件实现自定义menu菜单