[android] 新闻客户端引入SlidingMenu
下载SlidingMenu,https://github.com/jfeinstein10/SlidingMenu
导入library
我们项目右键==>Properties==>Android==>Library add 添加第三方项目为依赖
出现这个错误:Found 2 versions of android-support-v4.jar in the dependency list
因为第三方项目中的android-support-v4.jar包和我们项目中的冲突了,使用我们的jar包覆盖第三方项目的就可以了
当前activity继承SlidingFragmentActivity,重写onCreate()方法,
调用setBehidContentView(),设置滑动菜单的布局文件,参数:资源id
获取SlidingMenu对象,通过getSlidingMenu()方法
调用SlidingMenu对象的setMode()方法,设置左边划出,参数:SlidingMenu.LEFT
调用SlidingMenu对象的setBehindWidthRes(),设置菜单的宽度,参数:宽度dimen资源
调用SlidingMenu对象的setShadowDrawable()方法,设置菜单阴影,参数:shape资源文件
shape资源文件,添加根节点<shape>
添加渐变节点,<gradient>,设置开始颜色android:startColor=”#000000”
设置中间颜色,android:centerColor=”2D000000”
设置结束颜色,android:endColor=”5A000000”
调用SlidingMenu对象的setShadowWidth(),设置阴影的宽度,参数:宽度
调用SlidingMenu对象的setTouchModeAbove()方法,设置滑动的范围,
参数:SlidingMenu.TOUCHMODE_FULLSCREEN 全屏
SlidingMenu.TOUCHMODE_NONE 不允许滑动
调用requestWindowFeature(),参数:Window.FEATURE_NO_TITLE,去掉title
创建Fragment
新建一个包xxx.fragment,新建一个MenuFragment,继承v4包里的Fragment
重写onCreate()
重写onCreateView(),传递进来LayoutInflater对象
新建一个布局文件,list_view.xml,里面放一个ListView控件,调用LayoutInflater对象inflate()方法,转成View对象
重写onActivityCreated(),当activity创建的时候
调用View对象的findViewById(),获取ListView对象
调用ListView对象的setAdapter()方法,设置适配器,参数:Adapter对象
获取ArrayAdapter对象,构造方法,参数:上下文,布局资源,文本控件id,数据List
上下文(getActivity()),布局资源使用系统的android.R.layout.simple_list_item1
文本id android.R.id.text1,数据
替换布局
在activity中,获取Fragment对象,把menu布局替换成这个Fragmenu
获取Fragment对象,new MenuFragment()
调用getSuportFragment().beginTransaction().replace().commit()来替换
replace()方法,参数:布局id,fragment对象

MainActivity.java
package com.qingguow.news; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
import com.qingguow.news.fragment.MenuFragment; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window; public class MainActivity extends SlidingFragmentActivity { @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置滑动菜单
setBehindContentView(R.layout.menu);
setContentView(R.layout.activity_main);
SlidingMenu sm=getSlidingMenu();
sm.setMode(SlidingMenu.LEFT);
sm.setBehindWidth(200);
sm.setShadowDrawable(R.drawable.shape);
sm.setShadowWidth(5);
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //替换fragemnt
MenuFragment menuFragment=new MenuFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.ll_left_menu, menuFragment).commit();
}
}
MenuFragment.java
package com.qingguow.news.fragment; import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView; import com.qingguow.news.R; public class MenuFragment extends Fragment {
private View view;
//加载布局文件
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.list_view, null);
return view;
}
//设置listview数据
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ListView listview = (ListView) view.findViewById(R.id.lv_menu); List<String> data=new ArrayList<String>();
data.add("新闻");
data.add("发现");
data.add("关注");
ListAdapter adapter = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_list_item_1, android.R.id.text1,
data);
listview.setAdapter(adapter); }
}
[android] 新闻客户端引入SlidingMenu的更多相关文章
- 开源:我的Android新闻客户端,速度快、体积小、支持离线阅读、操作简便、内容展现形式丰富多样、信息量大、功能全面 等(要代码的留下邮箱)
分享:我的Android新闻客户端,速度快.体积小.支持离线阅读.操作简便.内容展现形式丰富多样.信息量大.功能全面 等(要代码的留下邮箱) 历时30天我为了开发这个新闻客户端APP,以下简称觅闻 h ...
- Ace教你一步一步做Android新闻客户端(四) 优化Bitmap大法
我计划着把需要用到的知识分解开来写,趁着我们要开发这款客户端的机会把安卓所有移动客户端开发中的技术贯穿其中,也是我自己成长的过程.By Ace in 20160121 我们开发一款新闻客户端程序,它的 ...
- Ace教你一步一步做Android新闻客户端(一)
复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...
- [android] 新闻客户端实现左侧导航点击切换
设置主布局文件,为根布局设置一个id,作为内容区 给ListView的条目设置点击事件,setOnItemClickListener()方法,参数:上下文 当前的Fragment实现OnItemCli ...
- Ace教你一步一步做Android新闻客户端(五) 优化Listview
今天写存货了 调试一些动画参数花了些时间 ,嘿嘿存货不多了就没法做教程了,今天来教大家优化listview,等下我把代码编辑下 这次代码有些多 所以我把条理给大家理清楚.思路就是把加载图片的权利交给O ...
- Ace教你一步一步做Android新闻客户端(三) JSON数据解析
对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式,现在给大家讲解一下json这个知识点, 1 如何通过json-lib和gson这两个json解析库来对解析我们的j ...
- [android] 新闻客户端主界面部分
当我们使用activity加fragment的时候,每个界面都要建立一个fragment,每个fragment里面都要重写onCreate(),onCreateView(),onActivityCre ...
- 阿冰教你一步一步做Android新闻客户端(二)两种异步线程加载图片的方法
哈哈哈抱着没人看的心态随便写,直接上代码,各位看官看注释 一种Thread 一种AsyncTask 先不说用框架 public class ImageLoader { private ImageVi ...
- android新闻App源码、仿微信源码、地图音乐源码等
Android精选源码 一款实用的休闲类App,新闻视频和技术应有尽有. android实现交互式K线图表源码 android新闻客户端和服务器源码 android MatetialDesign设计 ...
随机推荐
- HashSet源码解析
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 6.1.对于HashSet需要掌握以下几点 HashSet的创建:HashSet() 往HashSet中添加 ...
- OCP考试062题库出现大量新题-19
choose three Which three statements are true about Oracle Data Pump? A) Oracle Data Pump export and ...
- PHP eval函数
代码: eval("echo'hello world';"); 上边代码等同于下边的代码: echo"hello world"; 在浏览器中都输出:hello ...
- linux服务器ssh免密码登录
假设有三台服务器的ip分别是10.9.1.101.10.9.1.102.10.9.1.103 修改hosts文件 分别修改三台服务器的hosts的文件(vi /etc/hosts), 在hosts文件 ...
- JS获取浏览器URL中查询字符串的参数
首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...
- python学习笔记10-文件操作
能调用方法的一定是对象.文件本身也是一个对象.有很多自己内置的方法 #操作文件第一件事 建立文件对象 open函数 # 参数一:文件路径 绝对路径和相对路径都可以 # 参数二:模式选择 ‘r’ 读模式 ...
- Salt-API安装配置及使用
Python3使用saltstack和salt-api 安装python3 1. tar zxvf Python-3.5.1.tgz 2. cd Python-3.5.1 3. ./configure ...
- vue教程2-02 vue防止花括号{{}}闪烁,v-text和v-html、v-cloak
vue教程2-02 vue防止花括号{{}}闪烁,v-text和v-html.v-cloak 一.v-text和v-html <span>{{msg}}</span> --& ...
- odoo按钮图标 icon
https://www.slideshare.net/TaiebKristou/odoo-icon-smart-buttons http://www.iconfont.cn/collections/d ...
- 剑指offer六之求旋转数组的最小数字
一.题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个 ...