android自定义popwindow,并且有从底部弹出的动画
来源:互联网 发布:怎么开发app软件 编辑:程序博客网 时间:2024/05/21 08:45
首先自定义popwindow类
pop_bottom.xml为自定义布局
public class CustomPopWindow extends PopupWindow { private View mMenuView; private ListView listView; private TextView tv_ok; private TextView tv_pop_title; private LinearLayout liner_ok; private TextView redpacket_tip; private RelativeLayout liner_hasuse_redpacket; public CustomPopWindow(Context context) { super(context); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); //pop_bottom为自定义布局 mMenuView = inflater.inflate(R.layout.pop_bottom, null); listView=(ListView) mMenuView.findViewById(R.id.listview); tv_ok= (TextView) mMenuView.findViewById(R.id.tv_ok); tv_pop_title=(TextView) mMenuView.findViewById(R.id.tv_pop_title); liner_ok= (LinearLayout) mMenuView.findViewById(R.id.liner_ok); redpacket_tip= (TextView) mMenuView.findViewById(R.id.redpacket_tip); liner_hasuse_redpacket= (RelativeLayout) mMenuView.findViewById(R.id.liner_hasuse_redpacket); //设置SelectPicPopupWindow的View this.setContentView(mMenuView); //设置SelectPicPopupWindow弹出窗体的宽 this.setWidth(LayoutParams.MATCH_PARENT); //设置SelectPicPopupWindow弹出窗体的高 this.setHeight(LayoutParams.WRAP_CONTENT); //设置SelectPicPopupWindow弹出窗体可点击 this.setFocusable(true); //设置SelectPicPopupWindow弹出窗体动画效果 this.setAnimationStyle(R.style.popupAnimation); //实例化一个ColorDrawable颜色为半透明 //ColorDrawable dw = new ColorDrawable(0xb0000000); //设置SelectPicPopupWindow弹出窗体的背景 //this.setBackgroundDrawable(dw); this.getBackground().setAlpha(0); final Activity activity=(Activity) context; WindowManager.LayoutParams params=activity.getWindow().getAttributes(); params.alpha=0.7f; activity.getWindow().setAttributes(params); //mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框 mMenuView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if(event.getAction()==MotionEvent.ACTION_UP){ dismiss(); WindowManager.LayoutParams params=activity.getWindow().getAttributes(); params.alpha=1f; activity.getWindow().setAttributes(params); } return true; } }); this.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss() { WindowManager.LayoutParams params=activity.getWindow().getAttributes(); params.alpha=1f; activity.getWindow().setAttributes(params); } }); } public View getView(){ return mMenuView; } public ListView getListView() { return listView; } public TextView getTv_pop_title() { return tv_pop_title; } public LinearLayout getLiner_ok() { return liner_ok; } public TextView getRedpacket_tip() { return redpacket_tip; } public RelativeLayout getLiner_hasuse_redpacket() { return liner_hasuse_redpacket; }}
R.style.popupAnimation为窗体弹出动画
在res/values文件下建立以下代码
<style name="popupAnimation" parent="android:Animation"> <item name="android:windowEnterAnimation">@anim/in</item> <item name="android:windowExitAnimation">@anim/out</item> </style>
在res/anim文件下建立动画文件
in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="500" android:fromYDelta="100%p" android:toYDelta="0" /> <alpha android:duration="500" android:fromAlpha="0.0" android:toAlpha="1.0" /></set>
out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="500" android:fromYDelta="0" android:toYDelta="50%p" /> <alpha android:duration="500" android:fromAlpha="1.0" android:toAlpha="0.0" /></set>
在使用CustompopWindow时,直接创建对象获取对应的控件就可以了
0 0
- android自定义popwindow,并且有从底部弹出的动画
- 自定义popwindow,从底部弹出和消失动画
- 底部弹出popWindow的动画
- Android——Popwindow从底部弹出
- Android安卓用Dialog对话框简单并且完美实现popupWindow底部弹出效果,有动画效果
- android自定义PopWindow底部显示
- android自定义PopWindow底部显示
- Android实践-自定义dialog从屏幕底部弹出并且充满屏幕宽度
- Android自定义dialog从屏幕底部弹出并且充满屏幕宽度
- Android实践-自定义dialog从屏幕底部弹出并且充满屏幕宽度
- Android自定义dialog从屏幕底部弹出并且充满屏幕宽度
- android 5.0以上版本自定义dialog从屏幕底部弹出并且充满屏幕宽度
- 页面从底部弹出一个popWindow
- 【Popwindow】自定义popwindow的底部间隙问题
- Android的PopWindow动画实现底部滑出菜单
- Android 底部弹出动画
- 类似于qq音乐底部弹出的popwindow
- 一个底部弹出Popwindow的效果
- opengl环境在 vs2015和win10中的环境配置
- Ubuntu16.04安装配置JDK1.8
- Android简易闹钟实现
- 让你的Xcode8 支持 iOS7
- git 撤销操作
- android自定义popwindow,并且有从底部弹出的动画
- DB操作类
- stl读书笔记(1)-内存分配
- Swift-创建单例的三种方式
- WebView中使用setBuiltInZoomControls进行缩放并destroy webview时崩溃
- 利用反射把查询到的Table、Reader转换成List、Model
- 微信开发
- android studio 2.2 使用NDK方法
- spring2.5升级至spring4.1.6