`

PopupWindow泡泡效果

 
阅读更多

在使用手机的时候看到这个效果,上网查了一下,是使用了PopupWindow实现的

在此记录一下:


主要代码:

 

import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
  
import android.app.ListActivity;  
import android.content.Context;  
import android.os.Bundle;  
import android.view.Gravity;  
import android.view.LayoutInflater;  
import android.view.View;  
import android.view.WindowManager;  
import android.widget.AdapterView;  
import android.widget.AdapterView.OnItemClickListener;  
import android.widget.ListView;  
import android.widget.PopupWindow;  
import android.widget.SimpleAdapter;  
  
public class PopActivity extends ListActivity implements OnItemClickListener{  
    private List<Map<String,Object>> list ;  
    ListView listview;  
    PopupWindow pw = null;  
    //头像的Id数组  
    int head[]  = {R.drawable.image1,R.drawable.image2,R.drawable.image3,  
            R.drawable.image4,R.drawable.image5};  
      
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
       listview =  getListView();  
        initData();//生成几条记录  
        SimpleAdapter adapter =new SimpleAdapter(this, list,R.layout.people ,new String []{"head","name","num"} , new int []{R.id.head,R.id.text,R.id.num});  
       setListAdapter(adapter);  
      listview.setOnItemClickListener(this);  
    }  
    public void initData(){  
        list = new ArrayList<Map<String,Object>>();  
        for(int i = 0;i<5;i++){  
            Map<String ,Object> map  = new HashMap<String, Object>();  
            map.put("head", head[i]);  
            map.put("name","第"+i+"位用户");  
            map.put("num","12445533"+i);  
            list.add(map);  
        }  
    }  
    @Override  
    public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {  
        // TODO Auto-generated method stub  
        LayoutInflater factory = LayoutInflater.from(PopActivity.this);  
        final View textEntryView = factory.inflate(R.layout.paopao_alert_dialog, null);  
        //获取WindowManager对象  
        WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);     
        int envWidth = wm.getDefaultDisplay().getWidth();     
        int envHeight = wm.getDefaultDisplay().getHeight();    
        if(pw == null)  
        {  
            pw = new PopupWindow(textEntryView);   
            pw.showAtLocation(v, Gravity.LEFT,0,0); //在父视图的左上方显示  
        }else if(!pw.isShowing()){  
            pw = new PopupWindow(textEntryView);   
            pw.showAtLocation(v, Gravity.LEFT,0,0);   
        }  
        int pwH = 70;  
        int pwW = 166;  
        int y = -envHeight/2+v.getTop() + pwH;  
        pw.update(0,y,pwW,pwH); //更新位置。  
        textEntryView.findViewById(R.id.phone).setOnClickListener(new View.OnClickListener() {  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                pw.dismiss();  
            }  
  
        });  
    }  
}  
 

 

主要就是OnItemClick()方法中的实现,获取WindowManager ,得到一个PopupWindow对象,然后显示出来,当然在实际中要去响应PopupWindow中的按钮事件了。

 

From : http://blog.csdn.net/shaojie519/article/details/6642299

 

分享到:
评论

相关推荐

    Android PopupWindow泡泡效果(有listview)

    总结一下,实现Android PopupWindow泡泡效果并带有ListView的步骤包括: 1. 创建自定义形状的背景资源,模拟泡泡效果。 2. 设计一个包含ListView的布局文件。 3. 实例化PopupWindow并设置内容View、尺寸和背景。 4. ...

    PopupWindow泡泡效果(有listview)

    在这个“PopupWindow泡泡效果(有listview)”项目中,开发者创建了一个带有ListView的PopupWindow,为用户提供了一种视觉上吸引人的交互体验。 首先,我们来详细了解一下PopupWindow的基本概念。PopupWindow是...

    PopupWindow

    - 可选地,设置PopupWindow的背景、动画效果等属性。 - 调用`showAsDropDown()`或`showAtLocation()`方法显示PopupWindow。 3. **显示和隐藏** PopupWindow可以通过`showAsDropDown()`或`showAtLocation()`方法...

    Android 簡單實現自訂泡泡視窗PopupWindow

    本教程将详细介绍如何在Android中简单实现一个自定义的泡泡视窗(Bubble PopupWindow)。 首先,了解`PopupWindow`的基本概念。`PopupWindow`是Android提供的一个类,它允许开发者在应用程序中创建弹出式窗口。与`...

    Android程序研发源码Android 自定义泡泡效果源码.rar

    本示例源码“Android 自定义泡泡效果源码”聚焦于Android系统中的PopupWindow的使用和自定义,以实现独特的泡泡形状的弹出窗口。PopupWindow是Android提供的一种轻量级窗口,它可以在Activity的任何位置显示,并且...

    Android 自定义泡泡效果源码.zip

    本项目"Android 自定义泡泡效果源码.zip"提供了一个实现点击图标后弹出气泡效果的示例,这对于创建通知提示、菜单或增强用户交互都非常有用。下面将详细介绍这个项目的相关知识点。 1. **PopupWindow**: 在Android...

    常见的popupwindow和dialog使用

    如果需要一个高度定制、轻量级、不阻塞背景的弹出效果,`PopupWindow`可能是更好的选择。而如果需要一个标准的对话框样式,或者需要用户进行交互(如点击按钮、输入信息),则应使用`Dialog`。 在提供的`...

    Android 地图弹出泡泡

    为了实现泡泡的弹出效果,我们需要自定义布局,然后在点击事件中实例化并设置位置,确保它覆盖在Marker之上。 泡泡的样式可以通过自定义XML布局文件来调整,包括背景颜色、边框、文字样式等。同时,我们还可以添加...

    Android SMS 短信内容显示在一个 泡泡 形状的窗口中.zip

    此外,还需要考虑如何根据文本长度动态调整“泡泡”的大小,以及实现阴影效果,使“泡泡”看起来更立体。 接着,我们需要处理短信内容的获取。在Android中,短信数据存储在SQLite数据库中,通常通过`...

    泡泡窗口+gridview 实现底部菜单

    在这个类中,你可以设置泡泡窗口的大小、位置、动画效果等。例如,你可以根据设备的底部边缘来定位窗口,确保它总是出现在屏幕底部。 3. **创建GridView**:在BubbleWindow的布局中添加GridView,并设置其列数和...

    Android仿泡泡窗实现下拉菜单条实例代码

    在Android应用开发中,有时我们需要实现一些特殊效果来提升用户体验,比如本文提到的“泡泡窗实现下拉菜单条”。这个功能通常用于展示一系列可选的条目,用户可以通过点击按钮来展开菜单,然后选择或操作这些条目。...

    学习android的40个实例源码

    这个解压包有40 android的例子源码,这些例子都是实际的项目中遇到困难的参考例子。...仿Ucweb菜单,WaterWaveDemo,跑马灯,泡泡效果GoogleMapTest, 网页预览(鼠标放到超链接上就显示网站预览),Dec.

    仿美团poppuWindow弹出

    在IT行业中,`poppuWindow`通常是指一种模仿特定应用(如美团)的弹出窗口效果。这种弹出窗口通常具有独特的设计风格和交互体验,以吸引用户的注意力并提供便捷的操作界面。在这个场景中,我们关注的是如何实现一个...

    日历时间滚轮选择器

    4. **泡泡窗口效果**:为了让选择器以泡泡窗口的形式弹出,需要使用Android的`PopupWindow`类。`PopupWindow`可以创建一个浮动的视图,它可以在屏幕上的任意位置显示,且可以设置背景透明度,实现类似气泡的效果。 ...

    android开发资料大全

    android用户界面之PopupWindow教程实例汇总 android用户界面之ImageView教程实例汇总 android用户界面之菜单(Menu)教程实例汇总 android用户界面之Layout(布局)教程汇总 android用户界面之Checkbox教程实例汇总 ...

    Android SMSPopup速读短信

    "Android SMSPopup"项目正是一款这样的应用,它通过截获短信内容并以泡泡形状的窗口显示,提高了用户查看短信的效率。下面我们将深入探讨该应用的核心知识点。 首先,Android SMSPopup的实现基于Android系统的短信...

Global site tag (gtag.js) - Google Analytics