Android PopupWindow 的方法 & 弹出窗口方法


http://blog.csdn.net/android_xiaoqi/article/details/7618895    最常用的方法,方法 (showAtLocation()可以通过坐标设置弹出方向)
 /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        LayoutInflater inflater = LayoutInflater.from(this); 
        // 引入窗口配置文件 
        View view = inflater.inflate(R.layout.main2, null); 
        // 创建PopupWindow对象 
        final PopupWindow pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false); 
        Button btn = (Button) findViewById(R.id.btn); 
        // 需要设置一下此参数,点击外边可消失 
        pop.setBackgroundDrawable(new BitmapDrawable());//这一句 要加,不然点击外边不消失。
        //设置点击窗口外边窗口消失 
        pop.setOutsideTouchable(true); 
        // 设置此参数获得焦点,否则无法点击 
        pop.setFocusable(true); 
        btn.setOnClickListener(new OnClickListener() { 
               
            @Override 
            public void onClick(View v) { 
                if(pop.isShowing()) { 
                    // 隐藏窗口,如果设置了点击窗口外小时即不需要此方式隐藏 
                    pop.dismiss(); 
                else
                    // 显示窗口 
                    pop.showAsDropDown(v); 
                
                   
            
        }); 
    
}


http://www.jb51.net/article/32031.htm 另外也提了使用activity作为一个伪装的弹出窗口。
本人小菜一个。目前只见过两种弹出框的实现方式,第一种是最常见的PopupWindow,第二种也就是Activity的方式是前几天才见识过,需要的朋友可以参考下
id="cproIframe_u1892994_2" width="580" height="90" src="http://pos.baidu.com/acom?adn=3&at=231&aurl=&cad=1&ccd=24&cec=GBK&cfv=16&ch=0&col=en-US&conBW=0&conOP=1&cpa=1&dai=2&dis=0&ltr=http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3Dandroid%2520popupwindow%26rsv_spt%3D1%26issp%3D1%26f%3D3%26rsv_bp%3D0%26rsv_idx%3D2%26ie%3Dutf-8%26tn%3Dbaiduhome_pg%26rsv_enter%3D1%26rsv_sug3%3D14%26rsv_sug4%3D469%26rsv_sug1%3D9%26rsv_pq%3Ddb751bf50001c704%26rsv_t%3D2714dAhr76yTdYkKBJME1eYGgjvyYedF6iW6%252B%252FmCEyUiIveWUGDtdo7Oftp9cHErO08i%26oq%3Dandroid%2520p%26rsv_sug2%3D1%26rsp%3D0%26inputT%3D5665&ltu=http%3A%2F%2Fwww.jb51.net%2Farticle%2F32031.htm&lu_161=0&lunum=6&n=jb51_cpr&pcs=1508x953&pis=10000x10000&ps=516x289&psr=1920x1080&pss=1508x517&qn=dc4c35f05fce206f&rad=&rsi0=580&rsi1=90&rsi5=4&rss0=%23FFFFFF&rss1=%23F7FCFF&rss2=%230000ff&rss3=%23444444&rss4=%23008000&rss5=&rss6=%23e10900&rss7=&scale=&skin=tabcloud_skin_3&stid=5&td_id=1892994&titFF=%E5%AE%8B%E4%BD%93&titFS=12&titTA=left&tn=text_default_580_90&tpr=1421890922601&ts=1&version=2.0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1892994" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true">
本人小菜一个。目前只见过两种弹出框的实现方式,第一种是最常见的PopupWindow,第二种也就是Activity的方式是前几天才见识过。感觉很霸气哦。没想到,activity也可以做伪窗口。 
先贴上最常见的方法,主要讲activity的方法。 
一、弹出PopupWindow 

复制代码代码如下:

/** 
* 弹出menu菜单 
*/ 
public void menu_press(){ 
if(!menu_display){ 
//获取LayoutInflater实例 
inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE); 
//这里的main布局是在inflate中加入的哦,以前都是直接this.setContentView()的吧?呵呵 
//该方法返回的是一个View的对象,是布局中的根 
layout = inflater.inflate(R.layout.main_menu, null); 
//下面我们要考虑了,我怎样将我的layout加入到PopupWindow中呢???很简单 
menuWindow = new PopupWindow(layout,LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); //后两个参数是width和height 
//menuWindow.showAsDropDown(layout); //设置弹出效果 
//menuWindow.showAsDropDown(null, 0, layout.getHeight()); 
//设置如下四条信息,当点击其他区域使其隐藏,要在show之前配置 
menuWindow.setFocusable(true); 
menuWindow.setOutsideTouchable(true); 
menuWindow.update(); 
menuWindow.setBackgroundDrawable(new BitmapDrawable()); 
mClose = (LinearLayout)layout.findViewById(R.id.menu_close); 
menuWindow.showAtLocation(this.findViewById(R.id.schoolmain), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0,50); //设置layout在PopupWindow中显示的位置 
//如何获取我们main中的控件呢?也很简单 
mMainbtn = (LinearLayout)layout.findViewById(R.id.menu_main_btn); 
mHistorybtn = (LinearLayout) layout.findViewById(R.id.menu_history_btn); 
mHelpbtn = (LinearLayout) layout.findViewById(R.id.menu_help_btn); 
//下面对每一个Layout进行单击事件的注册吧。。。 
//比如单击某个MenuItem的时候,他的背景色改变 
//事先准备好一些背景图片或者颜色 
mMainbtn.setOnClickListener (new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 
mywebView.loadUrl(URL); 
menuWindow.dismiss(); //响应点击事件之后关闭Menu 

}); 
mHelpbtn.setOnClickListener (new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 
mywebView.loadUrl(URL); 
menuWindow.dismiss(); //响应点击事件 

}); 
mHistorybtn.setOnClickListener (new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 
mywebView.loadUrl(URL); 
menuWindow.dismiss(); //响应点击事件 

}); 
menu_display = true; 
}else{ 
//如果当前已经为显示状态,则隐藏起来 
menuWindow.dismiss(); 
menu_display = false; 


public void back_press(){ 
if(menu_display){ //如果 Menu已经打开 ,先关闭Menu 
menuWindow.dismiss(); 
menu_display = false; 

else { 
Intent intent = new Intent(); 
intent.setClass(MainActivity.this,Exit.class); 
startActivity(intent); 



这种方法很简单,要注意的是如果要想点击其他地方使其隐藏,要在show设置四条属性如下: 
// 使其聚焦 
mPopupWindow.setFocusable(true); 
// 设置允许在外点击消失 
mPopupWindow.setOutsideTouchable(true); 
//刷新状态 
mPopupWindow.update(); 
//点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件变化等操作 
mPopupWindow.setBackgroundDrawable(new BitmapDrawable()); 
二、Activity做伪弹窗 
 
本人感觉这个很先进啊。恕我冒犯,我只这里直接写上牛人的代码。此牛人写的是防微信的demo。做的相当好,我在后面附上CSDN免费下载链接。 
先贴上java代码——Exit.java 
package cn.buaa.myweixin; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.LinearLayout; 
import android.widget.Toast; 
public class Exit extends Activity { 
private LinearLayout layout; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.exit_dialog); 
layout=(LinearLayout)findViewById(R.id.exit_layout); 
layout.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
// TODO Auto-generated method stub 
Toast.makeText(getApplicationContext(), "提示:点击窗口外部关闭窗口!", 
Toast.LENGTH_SHORT).show(); 

}); 

@Override 
public boolean onTouchEvent(MotionEvent event){ 
finish(); 
return true; 

public void exitbutton1(View v) { 
this.finish(); 

public void exitbutton0(View v) { 
this.finish(); 
MainWeixin.instance.finish();//关闭Main 这个Activity 


附上布局文件:exit_dialog.xml 
复制代码代码如下:

View Code 
<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/exit_layout" 
android:layout_width="280dp" 
android:layout_height="wrap_content" 
android:gravity="center_horizontal" 
android:orientation="vertical" 
android:background="@drawable/confirm_dialog_bg2" > 
<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginTop="4dp" 
android:padding="5dp" 
android:textColor="#333" 
android:textSize="20sp" 
android:text="退出微信" /> 
<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textColor="#333" 
android:layout_marginTop="1dp" 
android:padding="10dp" 
android:textSize="16sp" 
android:gravity="center_horizontal" 
android:text="退出后,你将收不到新的消\n息.确定要退出?" /> 
<LinearLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginTop="33dp" 
android:layout_marginBottom="8dp" 

<Button 
android:id="@+id/exitBtn0" 
android:layout_width="110dp" 
android:layout_height="wrap_content" 
android:text="是" 
android:textSize="16sp" 
android:textColor="#fff" 
android:background="@drawable/btn_style_green" 
android:gravity="center" 
android:onClick="exitbutton0" 
/> 
<Button 
android:id="@+id/exitBtn1" 
android:layout_width="110dp" 
android:layout_height="wrap_content" 
android:layout_marginLeft="10dp" 
android:text="否" 
android:textSize="16sp" 
android:textColor="#333" 
android:background="@drawable/btn_style_white" 
android:gravity="center" 
android:onClick="exitbutton1" 
/> 
</LinearLayout> 
</LinearLayout> 

分析,弹出exit这个框很简单,本身就是activity,在主界面用startavtivity等方法像普通activity启动。 
关键是如何做到点击其他地方退出和如何关闭程序。 
、点击其他地方退出,只要监听OnClickListener让所有的点击都退出就行了(除了xml中指定按钮事件之外)。 
、退出主程序。只要在出程序中将主程序自己设置成静态对象,在外部调用即可 public static MainWeixin instance=null; 
上面的布局和activity并不能将activity的窗体展现在主界面之上,看起来像个弹出框。下面是弹出框的 styles配置: 
复制代码代码如下:

<style name="MyDialogStyle"> 
<item name="android:windowBackground">@android:color/transparent</item> 
<item name="android:windowFrame">@null</item> 
<item name="android:windowNoTitle">true</item> 
<item name="android:windowIsFloating">true</item> 
<item name="android:windowIsTranslucent">true</item> 
<item name="android:windowContentOverlay">@null</item> 
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
<item name="android:backgroundDimEnabled">true</item> 
</style> 

下面我们来分析一下这个布局的含义及重点: 
重点1、<item name="android:windowBackground">@android:color/transparent</item>窗口背景色 
重点2、<item name="android:windowFrame">@null</item>Dialog的windowFrame框为无 
重点4、<item name="android:windowIsFloating">true</item>是否浮现在activity之上 
重点5、<item name="android:windowIsTranslucent">true</item>窗口是否半透明——是(与第一条配合使用) 
重点6、<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>窗口弹出效果 
重点7、<item name="android:backgroundDimEnabled">true</item> 是否允许背景模糊 
重点8、<item name="android:windowContentOverlay">@null</item>这个不设置的话,可能会出现边框黑线 
以上代码都是牛人们的功劳,我拿来做一分析,给更多需要的朋友。 
我在众多牛人的指引下一步步成长,感谢牛人们。

本人小菜一个。目前只见过两种弹出框的实现方式,第一种是最常见的PopupWindow,第二种也就是Activity的方式是前几天才见识过,需要的朋友可以参考下
id="cproIframe_u1892994_2" width="580" height="90" src="http://pos.baidu.com/acom?adn=3&at=231&aurl=&cad=1&ccd=24&cec=GBK&cfv=16&ch=0&col=en-US&conBW=0&conOP=1&cpa=1&dai=2&dis=0&ltr=http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3Dandroid%2520popupwindow%26rsv_spt%3D1%26issp%3D1%26f%3D3%26rsv_bp%3D0%26rsv_idx%3D2%26ie%3Dutf-8%26tn%3Dbaiduhome_pg%26rsv_enter%3D1%26rsv_sug3%3D14%26rsv_sug4%3D469%26rsv_sug1%3D9%26rsv_pq%3Ddb751bf50001c704%26rsv_t%3D2714dAhr76yTdYkKBJME1eYGgjvyYedF6iW6%252B%252FmCEyUiIveWUGDtdo7Oftp9cHErO08i%26oq%3Dandroid%2520p%26rsv_sug2%3D1%26rsp%3D0%26inputT%3D5665&ltu=http%3A%2F%2Fwww.jb51.net%2Farticle%2F32031.htm&lu_161=0&lunum=6&n=jb51_cpr&pcs=1508x953&pis=10000x10000&ps=516x289&psr=1920x1080&pss=1508x517&qn=dc4c35f05fce206f&rad=&rsi0=580&rsi1=90&rsi5=4&rss0=%23FFFFFF&rss1=%23F7FCFF&rss2=%230000ff&rss3=%23444444&rss4=%23008000&rss5=&rss6=%23e10900&rss7=&scale=&skin=tabcloud_skin_3&stid=5&td_id=1892994&titFF=%E5%AE%8B%E4%BD%93&titFS=12&titTA=left&tn=text_default_580_90&tpr=1421890922601&ts=1&version=2.0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1892994" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true">
本人小菜一个。目前只见过两种弹出框的实现方式,第一种是最常见的PopupWindow,第二种也就是Activity的方式是前几天才见识过。感觉很霸气哦。没想到,activity也可以做伪窗口。 
先贴上最常见的方法,主要讲activity的方法。 
一、弹出PopupWindow 

复制代码 代码如下:

/** 
* 弹出menu菜单 
*/ 
public void menu_press(){ 
if(!menu_display){ 
//获取LayoutInflater实例 
inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE); 
//这里的main布局是在inflate中加入的哦,以前都是直接this.setContentView()的吧?呵呵 
//该方法返回的是一个View的对象,是布局中的根 
layout = inflater.inflate(R.layout.main_menu, null); 
//下面我们要考虑了,我怎样将我的layout加入到PopupWindow中呢???很简单 
menuWindow = new PopupWindow(layout,LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); //后两个参数是width和height 
//menuWindow.showAsDropDown(layout); //设置弹出效果 
//menuWindow.showAsDropDown(null, 0, layout.getHeight()); 
//设置如下四条信息,当点击其他区域使其隐藏,要在show之前配置 
menuWindow.setFocusable(true); 
menuWindow.setOutsideTouchable(true); 
menuWindow.update(); 
menuWindow.setBackgroundDrawable(new BitmapDrawable()); 
mClose = (LinearLayout)layout.findViewById(R.id.menu_close); 
menuWindow.showAtLocation(this.findViewById(R.id.schoolmain), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0,50); //设置layout在PopupWindow中显示的位置 
//如何获取我们main中的控件呢?也很简单 
mMainbtn = (LinearLayout)layout.findViewById(R.id.menu_main_btn); 
mHistorybtn = (LinearLayout) layout.findViewById(R.id.menu_history_btn); 
mHelpbtn = (LinearLayout) layout.findViewById(R.id.menu_help_btn); 
//下面对每一个Layout进行单击事件的注册吧。。。 
//比如单击某个MenuItem的时候,他的背景色改变 
//事先准备好一些背景图片或者颜色 
mMainbtn.setOnClickListener (new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 
mywebView.loadUrl(URL); 
menuWindow.dismiss(); //响应点击事件之后关闭Menu 

}); 
mHelpbtn.setOnClickListener (new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 
mywebView.loadUrl(URL); 
menuWindow.dismiss(); //响应点击事件 

}); 
mHistorybtn.setOnClickListener (new View.OnClickListener() { 
@Override 
public void onClick(View arg0) { 
mywebView.loadUrl(URL); 
menuWindow.dismiss(); //响应点击事件 

}); 
menu_display = true; 
}else{ 
//如果当前已经为显示状态,则隐藏起来 
menuWindow.dismiss(); 
menu_display = false; 


public void back_press(){ 
if(menu_display){ //如果 Menu已经打开 ,先关闭Menu 
menuWindow.dismiss(); 
menu_display = false; 

else { 
Intent intent = new Intent(); 
intent.setClass(MainActivity.this,Exit.class); 
startActivity(intent); 



这种方法很简单,要注意的是如果要想点击其他地方使其隐藏,要在show设置四条属性如下: 
// 使其聚焦 
mPopupWindow.setFocusable(true); 
// 设置允许在外点击消失 
mPopupWindow.setOutsideTouchable(true); 
//刷新状态 
mPopupWindow.update(); 
//点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件变化等操作 
mPopupWindow.setBackgroundDrawable(new BitmapDrawable()); 
二、Activity做伪弹窗 
 
本人感觉这个很先进啊。恕我冒犯,我只这里直接写上牛人的代码。此牛人写的是防微信的demo。做的相当好,我在后面附上CSDN免费下载链接。 
先贴上java代码——Exit.java 
package cn.buaa.myweixin; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.LinearLayout; 
import android.widget.Toast; 
public class Exit extends Activity { 
private LinearLayout layout; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.exit_dialog); 
layout=(LinearLayout)findViewById(R.id.exit_layout); 
layout.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
// TODO Auto-generated method stub 
Toast.makeText(getApplicationContext(), "提示:点击窗口外部关闭窗口!", 
Toast.LENGTH_SHORT).show(); 

}); 

@Override 
public boolean onTouchEvent(MotionEvent event){ 
finish(); 
return true; 

public void exitbutton1(View v) { 
this.finish(); 

public void exitbutton0(View v) { 
this.finish(); 
MainWeixin.instance.finish();//关闭Main 这个Activity 


附上布局文件:exit_dialog.xml 
复制代码 代码如下:

View Code 
<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/exit_layout" 
android:layout_width="280dp" 
android:layout_height="wrap_content" 
android:gravity="center_horizontal" 
android:orientation="vertical" 
android:background="@drawable/confirm_dialog_bg2" > 
<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginTop="4dp" 
android:padding="5dp" 
android:textColor="#333" 
android:textSize="20sp" 
android:text="退出微信" /> 
<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textColor="#333" 
android:layout_marginTop="1dp" 
android:padding="10dp" 
android:textSize="16sp" 
android:gravity="center_horizontal" 
android:text="退出后,你将收不到新的消\n息.确定要退出?" /> 
<LinearLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginTop="33dp" 
android:layout_marginBottom="8dp" 

<Button 
android:id="@+id/exitBtn0" 
android:layout_width="110dp" 
android:layout_height="wrap_content" 
android:text="是" 
android:textSize="16sp" 
android:textColor="#fff" 
android:background="@drawable/btn_style_green" 
android:gravity="center" 
android:onClick="exitbutton0" 
/> 
<Button 
android:id="@+id/exitBtn1" 
android:layout_width="110dp" 
android:layout_height="wrap_content" 
android:layout_marginLeft="10dp" 
android:text="否" 
android:textSize="16sp" 
android:textColor="#333" 
android:background="@drawable/btn_style_white" 
android:gravity="center" 
android:onClick="exitbutton1" 
/> 
</LinearLayout> 
</LinearLayout> 

分析,弹出exit这个框很简单,本身就是activity,在主界面用startavtivity等方法像普通activity启动。 
关键是如何做到点击其他地方退出和如何关闭程序。 
、点击其他地方退出,只要监听OnClickListener让所有的点击都退出就行了(除了xml中指定按钮事件之外)。 
、退出主程序。只要在出程序中将主程序自己设置成静态对象,在外部调用即可 public static MainWeixin instance=null; 
上面的布局和activity并不能将activity的窗体展现在主界面之上,看起来像个弹出框。下面是弹出框的styles配置: 
复制代码 代码如下:

<style name="MyDialogStyle"> 
<item name="android:windowBackground">@android:color/transparent</item> 
<item name="android:windowFrame">@null</item> 
<item name="android:windowNoTitle">true</item> 
<item name="android:windowIsFloating">true</item> 
<item name="android:windowIsTranslucent">true</item> 
<item name="android:windowContentOverlay">@null</item> 
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
<item name="android:backgroundDimEnabled">true</item> 
</style> 

下面我们来分析一下这个布局的含义及重点: 
重点1、<item name="android:windowBackground">@android:color/transparent</item>窗口背景色 
重点2、<item name="android:windowFrame">@null</item>Dialog的windowFrame框为无 
重点4、<item name="android:windowIsFloating">true</item>是否浮现在activity之上 
重点5、<item name="android:windowIsTranslucent">true</item>窗口是否半透明——是(与第一条配合使用) 
重点6、<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>窗口弹出效果 
重点7、<item name="android:backgroundDimEnabled">true</item> 是否允许背景模糊 
重点8、<item name="android:windowContentOverlay">@null</item>这个不设置的话,可能会出现边框黑线 
以上代码都是牛人们的功劳,我拿来做一分析,给更多需要的朋友。 
我在众多牛人的指引下一步步成长,感谢牛人们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嗨!对于你关于 Android PopupWindow 的问题,我可以给你一些基本的信息。PopupWindowAndroid 中的一个弹出窗口,它可以覆盖在其他视图之上,提供一种临时性的用户界面。你可以使用 PopupWindow 来显示额外的内容、菜单或者交互提示。 要创建一个 PopupWindow,首先你需要实例化一个 PopupWindow 对象,并为其设置一些基本属性,例如宽度、高度、背景等。然后,你可以将任何视图或布局添加到 PopupWindow 中,并通过设置位置参数来控制它的显示位置。 下面是一个简单的示例代码,展示如何创建和显示一个 PopupWindow: ```java // 创建一个 PopupWindow 对象 PopupWindow popupWindow = new PopupWindow(context); // 设置 PopupWindow 的宽度和高度 popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); // 设置 PopupWindow 的内容视图 View contentView = LayoutInflater.from(context).inflate(R.layout.popup_layout, null); popupWindow.setContentView(contentView); // 设置 PopupWindow 的背景 popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); // 显示 PopupWindow popupWindow.showAtLocation(anchorView, Gravity.CENTER, 0, 0); ``` 在上面的示例中,我们创建了一个 PopupWindow 对象,并设置了宽度和高度为包裹内容。然后,我们通过调用 `setContentView` 方法将一个自定义的布局文件 `R.layout.popup_layout` 添加到 PopupWindow 中。最后,我们使用 `showAtLocation` 方法PopupWindow 显示在屏幕中央。 希望这些信息对你有帮助!如果你对 PopupWindow 有更多的问题,或者需要更详细的示例代码,请随时告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值