android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
来源:互联网 发布:植物大战僵尸2淘宝存档 编辑:程序博客网 时间:2024/04/27 20:31
这一系列博文都是:(android高仿系列)今日头条 --新闻阅读器 (一)
开发中碰到问题之后实现的,觉得可能有的开发者用的到或则希望独立成一个小功能DEMO,所以就放出来这么一个DEMO。
原本觉得是最后完成后发网站客户端的,可是这样体现不出一个功能一个功能的分析实现效果,而且周期时间长,所以就完成一部分,发一部分,敬请谅解。
下面的菜单弹出效果在很多的新闻阅读器上都有,比如今日头条、360新闻等。下
其实这个实现起来很简单,看其效果,其实就是一个PopupWindow,之后设定相应postion的按钮点击属性,之后获取按钮的位置,给它设置动画显示消失就可以出现了。
下面看看代码的思路:
由于整体是一个LISTVIEW,所以我把点击的事件写到了对应的Adapter适配器中。
public class MyAdapter extends BaseAdapter {LayoutInflater inflater = null;Activity activity;ArrayList<News> newslist;private PopupWindow popupWindow;public MyAdapter(Activity activity, ArrayList<News> newslist) {this.activity = activity;this.newslist = newslist;inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);initPopWindow();}@Overridepublic int getCount() {return newslist != null ? newslist.size() : 0;}@Overridepublic News getItem(int position) {if (newslist != null && newslist.size() != 0) {return newslist.get(position);}return null;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {View vi = convertView;final ViewHolder holder;if (vi == null) {vi = inflater.inflate(R.layout.listview_item, null);holder = new ViewHolder();holder.item_title = (TextView) vi.findViewById(R.id.item_title);holder.item_content = (TextView) vi.findViewById(R.id.item_content);holder.button_showpop = (ImageView) vi.findViewById(R.id.button_showpop);vi.setTag(holder);} else {holder = (ViewHolder) vi.getTag();}News news = getItem(position);holder.item_title.setText(news.getTitle());holder.item_content.setText(news.getContent());holder.button_showpop .setOnClickListener(new popAction(position));return vi;}public class ViewHolder {TextView item_title;TextView item_content;ImageView button_showpop;}/** * 初始化popWindow * */private void initPopWindow() {View popView = inflater.inflate(R.layout.listview_pop, null);popupWindow = new PopupWindow(popView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);popupWindow.setBackgroundDrawable(new ColorDrawable(0));//设置popwindow出现和消失动画popupWindow.setAnimationStyle(R.style.PopMenuAnimation);btn_pop_close = (ImageView) popView.findViewById(R.id.btn_pop_close);}/** popWindow 关闭按钮 */private ImageView btn_pop_close;/** * 显示popWindow * */public void showPop(View parent, int x, int y,int postion) {//设置popwindow显示位置popupWindow.showAtLocation(parent, 0, x, y);//获取popwindow焦点popupWindow.setFocusable(true);//设置popwindow如果点击外面区域,便关闭。popupWindow.setOutsideTouchable(true);popupWindow.update();if (popupWindow.isShowing()) {}btn_pop_close.setOnClickListener(new OnClickListener() {public void onClick(View paramView) {popupWindow.dismiss();}});}/** * 每个ITEM中more按钮对应的点击动作 * */public class popAction implements OnClickListener{int position;public popAction(int position){this.position = position;}@Overridepublic void onClick(View v) {int[] arrayOfInt = new int[2];//获取点击按钮的坐标v.getLocationOnScreen(arrayOfInt); int x = arrayOfInt[0]; int y = arrayOfInt[1]; showPop(v, x , y, position);}}}就这么多的内容,很简单,日后碰到这类相关的效果,也就不用怕了。
下面是我经过上述代码实现的效果:
下面放上该效果源码DEMO的下载地址:下载地址
高仿今日头条(二)预计明天发布,大致已经是个整体客户端了,有的功能还没实现还在进一步完善,比如说新闻类别选择那边,拖动效果还未实现,目前只实现了点击效果,所以还在慢慢摸索阶段。
33 0
- android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
- android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
- android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
- android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
- android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
- Android 仿订单出票效果 (附DEMO)
- Android 仿订单出票效果 (附DEMO)
- Android 仿订单出票效果 (附DEMO)
- Android 仿订单出票效果 (附DEMO)
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源码
- Oracle rownum
- cocos2d-x笔记(九)Lua开发飞机大战-3-背景图的滚动
- jnkhjklhb
- 双摇杆
- 原来Cocos2d-x里面有对json解析的库
- android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
- GNU ARM汇编伪操作
- Android4.3的新类UiAutomationConnection
- 6.栈的应用-迷宫求解
- 【源码学习-LinkedHashMap】
- python处理html中的转义字符
- LIGHTOJ 1044(动态规划)
- 虚函数的实现机制
- poj-1149-PIGS-网络流