首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

PopupWindow泡沫效果

2012-07-26 
PopupWindow泡泡效果在使用手机的时候看到这个效果,上网查了一下,是使用了PopupWindow实现的在此记录一下:

PopupWindow泡泡效果

在使用手机的时候看到这个效果,上网查了一下,是使用了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

?

热点排行