实现Android的底部滑动选择
来源:互联网 发布:江苏天马网络科技集团 编辑:程序博客网 时间:2024/06/05 17:52
最近写了一个小demo测试一下底部滑动选择的效果,在这里想把它记录下来
首先还是看效果图:
接下就是代码部分了
MainActivity:
public class MainActivity extends AppCompatActivity { private ConstellationWheelAdapter adapter; private ArrayList<String> list; private SelectPopupWindow pop; private TextView mResult; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list = new ArrayList<>(); list.add("白羊座"); list.add("金牛座"); list.add("双子座"); list.add("巨蟹座"); list.add("狮子座"); list.add("处女座"); list.add("天秤座"); list.add("天蝎座"); list.add("射手座"); list.add("摩羯座"); list.add("水瓶座"); list.add("双鱼座"); mResult = (TextView) findViewById(R.id.tv_result); mResult.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { adapter = new ConstellationWheelAdapter(list); pop = new SelectPopupWindow(MainActivity.this, "请选择星座", adapter, resultClick); // 显示窗口 pop.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); } }); } private View.OnClickListener resultClick = new View.OnClickListener() { @Override public void onClick(View v) { String s = list.get(pop.getWheelView().getCurrentItem()); mResult.setText(s); pop.dismiss(); } };}
自定义的popupwindow
public class SelectPopupWindow extends PopupWindow { private ImageView btn_ok, btn_cancel; private TextView titleTv; private WheelView wheelView; private View mMenuView; public SelectPopupWindow(Activity context, String title, WheelAdapter adapter, OnClickListener itemsOnClick) { super(context); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mMenuView = inflater.inflate(R.layout.select_popup, null); btn_ok = (ImageView) mMenuView.findViewById(R.id.btn_ok); btn_cancel = (ImageView) mMenuView.findViewById(R.id.btn_cancel); titleTv=(TextView) mMenuView.findViewById(R.id.title); wheelView=(WheelView)mMenuView.findViewById(R.id.wheel); wheelView.setAdapter(adapter); titleTv.setText(title); // 设置按钮监听 btn_ok.setOnClickListener(itemsOnClick); btn_cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); // 设置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.AnimationFade); // 实例化一个ColorDrawable颜色为半透明 ColorDrawable dw = new ColorDrawable(00000000); // 设置SelectPicPopupWindow弹出窗体的背景 this.setBackgroundDrawable(dw); // mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框 mMenuView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int height = mMenuView.findViewById(R.id.pop_operate).getTop(); int y = (int) event.getY(); if (event.getAction() == MotionEvent.ACTION_UP) { if (y < height) { dismiss(); } } return true; } }); } public WheelView getWheelView() { return wheelView; }}
上面只给出了部分代码。ConstellationWheelAdapter以及其他的代码和图片等资源
我下面会给出整个Module的链接。需要的话可以直接下过来复制用。
可能自身博客写的少,自己总结好像也没到位。希望自己以后的博客能越写越好,多去学习学习别人的优秀博客。然后能和大家一起分享。共同学习进步。
下载链接:http://download.csdn.net/detail/qq_33043795/9698774
0 0
- 实现Android的底部滑动选择
- android实现类似淘宝的底部滑动导航菜单
- 仿美团APP的底部滑动菜单实现
- 底部滑动菜单实现
- Android实现可左右滑动的选择控件
- android实现顶部底部固定 中间可滑动
- android dialog实现底部弹出和手指滑动隐藏效果
- Android TabLayout实现底部菜单导航支持左右滑动
- Android ViewPager无限循环实现底部小圆点动态滑动
- Android底部菜单的实现
- FragmentTabHost + pageView 实现可左右滑动的底部菜单 ...
- 滑动到底部或顶部响应的ScrollView实现
- 实现ViewPager底部条跟着ViewPager滑动的效果
- 微信底部滑动时图标渐变色的实现
- FragmentTabHost+ViewPager实现滑动的底部导航栏
- Radio+不可滑动的viewpager实现底部导航栏
- jquery实现滑动到底部加载下一页的数据
- Android控件:ScrollView的使用,滑动到底部的监听
- 引入dubbo依赖 后 项目启动失败 报错:....on JDK 1.5 and higher
- 网络 数据链路层
- Oracle数据库问题
- 海思移植opencv+车辆检测
- 视频播放屏幕旋转
- 实现Android的底部滑动选择
- EditPlus配置文件详解
- VC++ webbrowser函数使用范例
- 字符串
- SpringBoot第二讲 利用Spring Data JPA实现数据库的访问(二)_分页和JpaSpecificationExecutor接口介绍
- sqlserver为数据库表增加自增字段
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
- 文章标题
- 音频处理之 音频文件拼接,音轨合成 swift版