自己新浪博客迁移
main.xml中的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/main"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开泡泡窗口"
android:onClick="openPopWindow"
/>
</LinearLayout>
pop.xml的源代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="4"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:id="@+id/gridView"
/>
</LinearLayout>
grid_item.xml的源代码:代表POP中每一项的内容布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/icon"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#003399"
android:textSize="14sp"
android:gravity="center"
android:id="@+id/title"
/>
</LinearLayout>
MainActivity中的代码
public class MainActivity extends Activity {
private int[] menu_image_array = {R.drawable.i1, R.drawable.i2,
R.drawable.i3, R.drawable.i4,
R.drawable.i5, R.drawable.i6,
R.drawable.i7, R.drawable.i8};
private String[] menu_name_array = {"搜索", "文件管理", "下载管理", "全屏", "网址", "书签", "加入书签", "分享页面"};
PopupWindow popupWindow;
GridView gridView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.windowtitle);
View popView = getLayoutInflater().inflate(R.layout.pop, null);
popupWindow = new PopupWindow(popView, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(true);//取的焦点,创建出来的popupwindow默认无焦点
gridView = (GridView) popView.findViewById(R.id.gridView);
//设置Pop窗口内部每一项的点击事件
gridView.setOnItemClickListener(new ItemClickListener());
}
private final class ItemClickListener implements OnItemClickListener{
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//处理工作
if(popupwindows.isShowing()) popupWindow.dismiss();
}
}
private ListAdapter createAdapter() {
ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String,Object>>();
for(int i = 0 ; i < menu_image_array.length ; i++){
HashMap<String, Object> item = new HashMap<String, Object>();
item.put("icon", menu_image_array[i]);
item.put("title", menu_name_array[i]);
data.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.grid_item,
new String[]{"icon","title"}, new int[]{R.id.icon, R.id.title});
return adapter;
}
//打开Pop窗口
public void openPopWindow(View v){
popupWindow.showAtLocation(findViewById(R.id.main), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);
gridView.setAdapter(createAdapter());
}
}