参考了网上的一些代码,自己写了个类,上代码

/**
* Created by Lee on 2016/2/26.
*/
public class CameraPopupWindow { private PopupWindow popupWindow;
private Context context; public CameraPopupWindow(Context context){
this.context = context;
} /**
* 初始化PopupWindow
* @param view
*/
public void initPopupWindow(View view){
popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
popupWindow.setTouchable(true);
popupWindow.setOutsideTouchable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable(context.getResources(), (Bitmap) null)); popupWindow.getContentView().setFocusableInTouchMode(true);
popupWindow.getContentView().setFocusable(true);
popupWindow.setAnimationStyle(R.style.anim_menu_bottombar);
popupWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 0
&& event.getAction() == KeyEvent.ACTION_DOWN){
if(popupWindow != null && popupWindow.isShowing()){
popupWindow.dismiss();
}
return true;
}
return false;
}
});
} /**
* 设置PopupWindow位于底部
* @param parent
* @param view
*/
public void showAtBottom(View parent, View view){
popupWindow.showAtLocation(parent, Gravity.BOTTOM, 0, 0);
popupWindow.showAsDropDown(view);
} /**
* dismiss PopupWindow
*/
public void dismiss(){
popupWindow.dismiss();
}
}

style文件

<style name="anim_menu_bottombar">
<item name="android:windowEnterAnimation">@anim/menu_bottombar_in</item>
<item name="android:windowExitAnimation">@anim/menu_bottombar_out</item>
</style>

anim文件 menu_bottombar_in.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="250"
android:fromYDelta="100.0%"
android:toYDelta="0.0" />
</set>

menu_bottombar_out.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="250"
android:fromYDelta="0.0"
android:toYDelta="100%" />
</set>

外部调用

View popupView = getLayoutInflater().inflate(R.layout.layout_popupwindow_camera, null);
cameraPopupWindow = new CameraPopupWindow(this);
cameraPopupWindow.initPopupWindow(popupView);

popupwindow从底部弹出的更多相关文章

  1. PopupWindow 从底部弹出窗体

    第一步  : 初始化PopupWindow private void initPop() { if (view == null) { // 照片 view = View.inflate(Registe ...

  2. 仿iOS底部弹出popUpWindow

    上面为弹出来的效果 popUpWindow布局: <?xml version="1.0" encoding="utf-8"?> <Linear ...

  3. 通用的popupwindow底部弹出框

    前段时间做项目的时候,有几个底部弹出框,当时因为忙着赶进度所有就单独写了好几个popupwindow.后来就想着怎么实现一个通用的PopupWindow工具类 就是在要用到的时候创建该工具类的对象,并 ...

  4. 【Android UI设计与开发】7.底部菜单栏(四)PopupWindow 实现显示仿腾讯新闻底部弹出菜单

    前一篇文章中有用到 PopupWindow 来实现弹窗的功能.简单介绍以下吧. 官方文档是这样解释的:这就是一个弹出窗口,可以用来显示一个任意视图.出现的弹出窗口是一个浮动容器的当前活动. 1.首先来 ...

  5. 转 android 从底部弹出一个popuwindow,渐入渐出效果。我这里是用在购物车需要选择购买选项的操作。

    最近要改客户端,需要实现一个从底部弹出的popuwindow,像我这种渣渣android技术,能整出popuwindow但是整不出动画,百度之,记录一下. 从下面这个地址转的 http://blog. ...

  6. [deviceone开发]-底部弹出选择

    一.简介 个人上传的第一个示例源码,两天空闲时间写的,一点简单组件,写的挺乱还没啥注释,仅供新手学习. 底部弹出选择,可滑动选择选项,如果停留在选项中间,可自动校正位置,加了一点简单的动画效果,需要的 ...

  7. Android 底部弹出Dialog(横向满屏)

    项目中经常需要底部弹出框,这里我整理一下其中我用的比较顺手的一个方式(底部弹出一个横向满屏的dialog). 效果图如下所示(只显示关键部分): 步骤如下所示: 1.定义一个dialog的布局(lay ...

  8. UIActionSheet底部弹出框

    <底部弹出框来提示用户信息>    1.遵循代理方法<UIActionSheetDelete>    2.调用放法 [UIActionSheet *sheet=[UIActio ...

  9. Android Demo---实现从底部弹出窗口

    在前面的博文中,小编简单的介绍了如何制作圆角的按钮以及圆角的图片,伴着键盘和手指之间的舞步,迎来新的问题,不知道小伙伴有没有这样的经历,以App为例,点击头像的时候,会从底部弹出一个窗口,有从相册中选 ...

随机推荐

  1. Codeforces 538 C. Tourist's Notes

    C. Tourist's Notes   time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  2. HDU 1426 Sudoku Killer【DFS 数独】

    自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品— ...

  3. 【数论】【素数判定】CODEVS 2851 菜菜买气球

    素数判定模板. #include<cstdio> #include<map> using namespace std; ],ans=-,l,r,n,sum[]; bool is ...

  4. 【单调队列】【动态规划】bzoj3831 [Poi2014]Little Bird

    f(i)=min{f(j)+(D(j)<=D(i))} (max(1,i-k)<=j<=i) 有两个变量,很难用单调队列,但是(引用): 如果fi<fj,i一定比j优秀.因为如 ...

  5. 【欧拉函数】BZOJ2190-[SDOI2012]longge的数学问题

    [题目大意] 求出∑gcd(i, N)(1<=i <=N). [思路] 对于x=ak,y=bk,若gcd(a,b)=1则必有gcd(x,y)=1.枚举N的所有因数,∑gcd(i, N)=∑ ...

  6. 8.5(java学习笔记)8.5 字节码操作(javassist)

    一.javassist javassist让我们操作字节码更加简单,它是一个类库,允许我们修改字节码.它允许java程序动态的创建.修改类. javassist提供了两个层次的API,基于源码级别的和 ...

  7. Inno Setup入门(一)——最简单的安装脚本

    地址:http://379910987.blog.163.com/blog/static/3352379720110238252326/ 一个最简单的安装脚本: 1.最简单的安装文件脚本: [setu ...

  8. QEMU, a Fast and Portable Dynamic Translator

    AbstractWe present the internals of QEMU, a fast machine emulator using an original portable dynamic ...

  9. CSS3:绘制图形

    CSS画图形,基本上所有的实现都是对边框的角度的调整及组合. 以下不包含兼容浏览器的前缀,请使用时在border-radius前加-moz-.-webkit- .... 1.正常得不得了的矩形 .sq ...

  10. asp.net HttpModule和HttpHandler

    ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后,仍经过Pi ...