菜单是我们做应用 的时候经常要用到的,像UC等都有,今天也做了个小Demo,用POPWindow实现的。弹出效果主要使用了translate和alpha样式实现

POP的主要代码:

private void showPop() {ViewGroup menuView = (ViewGroup) getLayoutInflater().inflate(R.layout.gridview_pop, null, true);menuGrid = (GridView) menuView.findViewById(R.id.gridview);menuGrid.setAdapter(getMenuAdapter(menu_name_array, menu_image_array));menuGrid.requestFocus();menuGrid.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {Toast.makeText(MainActivity.this, menu_name_array[arg2],Toast.LENGTH_LONG).show();popupWindow.dismiss();}});popupWindow = new PopupWindow(menuView, LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT, true);popupWindow.setFocusable(true);popupWindow.setOutsideTouchable(true);popupWindow.setAnimationStyle(R.style.PopupAnimation);popupWindow.showAtLocation(textView, Gravity.BOTTOM, 0, Dp2Px(45));popupWindow.update();}
其中showAtLocation这个方法比较关键:

第一个参数指定PopupWindow的锚点view,即依附在哪个view上

第二个参数指定起始点为parent的右下角,第三个参数设置以parent的右下角为原点,向左、上各偏移多少像素。
效果图如下:


但是要求从menu的下面一层滑出,这个用popw我就没能实现,我是用一个View实现的,如果谁用popw实现了可以交流交流,不胜感激。

我用View实现的代码:

private void showView() {if (ll_menu.getVisibility() == View.GONE) {menuGrid.setAdapter(getMenuAdapter(menu_name_array,menu_image_array));ll_menu.setVisibility(View.VISIBLE);Animation animation_in = AnimationUtils.loadAnimation(MainActivity.this, R.anim.push_bottom_in);ll_menu.startAnimation(animation_in);} else {Animation animation_out = AnimationUtils.loadAnimation(MainActivity.this, R.anim.push_bottom_out);animation_out.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {// TODO Auto-generated method stub}@Overridepublic void onAnimationRepeat(Animation animation) {// TODO Auto-generated method stub}@Overridepublic void onAnimationEnd(Animation animation) {ll_menu.setVisibility(View.GONE);}});ll_menu.startAnimation(animation_out);}}

Demo下载地址: http://download.csdn.net/detail/taotao19880301/6942559





更多相关文章

  1. android web services3
  2. Android中pendingIntent的详解
  3. retrofit2+okhttp3+rxjava网络封装
  4. Android(安卓)JNI 编程
  5. PreferenceActivity 参数设置UI的使用
  6. Android使用intent跳转到其它应用activity界面
  7. Android异步AsyncTask二三解
  8. android 只定义下边边框
  9. Tween动画介绍

随机推荐

  1. Android例子—设置Activity全屏的三种方
  2. android 内存使用
  3. Android(安卓)Studio 常用插件收集
  4. android studio/idea各种坑
  5. Android消息循环机制源码分析
  6. Android最佳实践之Notification、下拉刷
  7. Android深入浅出系列课程---Lesson6 AAF1
  8. Android(安卓)sqlite 表更新
  9. 用Flex开发移动应用(1)---- 创建一个新的Mo
  10. Mac 10.12 编译 Android(安卓)源码