android 学习之popupWindow 在指定位置上的显示,进出样式。
2015-10-29 11:11
766 查看
popupWindow 显示位置主要有showAsDropDown()和showAtLocation(),
在控件的上方:
使用showAsDropDown()显示在控件的下方:
定义popWindow进出样式,首先在Android工程中的res/anim下面新建两个xml,popshow.xml和pophide.xml如下:
1、飞入分出样式:
定义显示效果的动画文件popshow.xml :
定义消失效果的动画文件pophide.xml :
在styles.xml文件中设置一个动画样式:
然后使用代码设置:
2、淡入淡出样式:
定义淡入样式:
定义淡出样式:
注:
参数duration用来设置动画完成需要的时间
参数fromAlpha表示动画开始时的透明度
参数toAlpha表示动画结束时的透明度
在控件的上方:
private void showPopUp(View parent) { popupWindow = new PopupWindow(parent,LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); // 获取popwindow焦点 popupWindow.setFocusable(true); // 点击PopupWindow区域外部消失 popupWindow.setOutsideTouchable(true); popupWindow.setBackgroundDrawable(new BitmapDrawable()); // 设置popwindow出现和消失动画 popupWindow.setAnimationStyle(R.style.PopMenuAnimation); // 获取点击按钮的坐标 int[] location = new int[2]; v.getLocationOnScreen(location); // 设置popwindow显示位置 popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupWindow.getHeight()); }
使用showAsDropDown()显示在控件的下方:
popupWindow.showAsDropDown(v);
定义popWindow进出样式,首先在Android工程中的res/anim下面新建两个xml,popshow.xml和pophide.xml如下:
1、飞入分出样式:
定义显示效果的动画文件popshow.xml :
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="0" android:fromYDelta="120" android:toYDelta="0" android:duration="500" /> </set>
定义消失效果的动画文件pophide.xml :
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="0" android:fromYDelta="0" android:toYDelta="120" android:duration="500" /> </set>
在styles.xml文件中设置一个动画样式:
<style name="PopMenuAnimation"> <item name="android:windowEnterAnimation">@anim/popshow</item> <item name="android:windowExitAnimation">@anim/pophide</item> </style>
然后使用代码设置:
// 设置popwindow出现和消失动画 popupWindow.setAnimationStyle(R.style.PopMenuAnimation);
2、淡入淡出样式:
定义淡入样式:
<?xml version="1.0" encoding="utf-8"?> <!-- 淡入 --> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="200" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>
定义淡出样式:
<?xml version="1.0" encoding="utf-8"?> <!--淡出 --> <set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="200" android:fromAlpha="1.0" android:toAlpha="0.0" /> </set>
注:
参数duration用来设置动画完成需要的时间
参数fromAlpha表示动画开始时的透明度
参数toAlpha表示动画结束时的透明度
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories