[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);

    }
}
时间: 2024-10-25 11:35:34

[android] 新闻客户端引入SlidingMenu的相关文章

开源:我的Android新闻客户端,速度快、体积小、支持离线阅读、操作简便、内容展现形式丰富多样、信息量大、功能全面 等(要代码的留下邮箱)

分享:我的Android新闻客户端,速度快.体积小.支持离线阅读.操作简便.内容展现形式丰富多样.信息量大.功能全面 等(要代码的留下邮箱) 历时30天我为了开发这个新闻客户端APP,以下简称觅闻 http://m.yunxunmi.com/ 由于本人比较愚钝,不太擅长各种开源代码的运用,因此全部从0开始开发,期间开发了: 一个新闻采集器(C++),截止目前为止已经连续运行20多天没出现任何故障,采集接近150个大中型新闻分类网站,采集器下载及介绍网站预计下周免费发布,风格类似我的即时通讯网站 

Android源码下载之《Android新闻客户端源码》

介绍 Android新闻客户端源码,功能上分为:新闻.关注.读报.微博.里面比较有特色的就是读报功能,真正安装报纸的排版进行读报,给人得感觉就像是在读真实的报纸.其实即使首页的动态云标签非常有特色,可以随机显示出最新新闻热词,用手滑动还能动态切换.此Demo即可作为学习使用也可作为商业使用,本站保留原创权利! 测试环境 [Code4Apk]编译测试,测试环境:eclipse 3.7 , android 2.3.3 效果图 下载 更多精彩请关注Android源码下载:Android源码下载  (h

Ace教你一步一步做Android新闻客户端(一)

复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和新手引导 软件侧滑菜单 滑动主页的GUI篇 一个内容解析篇. 代码里有很详细的注释 所以直接放代码了 有不会的站内信或者评论我会及时回复. MainActivity XML :只有一个ListView布局 <?xml version="1.0" encoding="utf-

[android] 新闻客户端实现左侧导航点击切换

设置主布局文件,为根布局设置一个id,作为内容区 给ListView的条目设置点击事件,setOnItemClickListener()方法,参数:上下文 当前的Fragment实现OnItemClickListener接口 实现onItemClick()方法 switch判断一下当前菜单的索引位置,根据索引来实例化不同的Fragment对象 调用getActivity()方法,得到宿主Activity对象,这个activity暴露一个方法,替换fragment 使用关键字instances o

Ace教你一步一步做Android新闻客户端(三) JSON数据解析

对于服务器端来说,返回给客户端的数据格式一般分为html.xml和json这三种格式,现在给大家讲解一下json这个知识点, 1 如何通过json-lib和gson这两个json解析库来对解析我们的json数据, 2 以及如何在我们的Android客户端解析来自服务器端的json数据,并更新到UI当中.(下篇来讲) 一.什么是json json(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编

[android] 新闻客户端主界面部分

当我们使用activity加fragment的时候,每个界面都要建立一个fragment,每个fragment里面都要重写onCreate(),onCreateView(),onActivityCreated(),方法,我们新建一个基类BaseFragment来重写这些方法 BaseFragment需要定义一个抽象方法initView(),用来初始化View对象,需要子类去实现,我们父类把LayoutInflater对象传进去 BaseFragment需要定义一个抽象方法initData(),用

Ace教你一步一步做Android新闻客户端(五) 优化Listview

今天写存货了 调试一些动画参数花了些时间 ,嘿嘿存货不多了就没法做教程了,今天来教大家优化listview,等下我把代码编辑下 这次代码有些多 所以我把条理给大家理清楚.思路就是把加载图片的权利交给OnScrollListener . 1 首先来到 NewsAdapter这个类 ,我们给他实现了一个 AbsListView.OnScrollListener 这个接口,这个接口有两个方法: @Override public void onScrollStateChanged(AbsListView

阿冰教你一步一步做Android新闻客户端(二)两种异步线程加载图片的方法

哈哈哈抱着没人看的心态随便写,直接上代码,各位看官看注释 一种Thread  一种AsyncTask 先不说用框架 public class ImageLoader { private ImageView mImageView; private String mUrl; //Thread明显很low 还需要handler来传递消息,好累T T android.os.Handler mHandler = new android.os.Handler(){ @Override public void

一个基于Android系统的新闻客户端(一)

一.整体概述 在服务器端,通过对凤凰网的抓取存入数据库,客户端通过向服务器发送请求得到新闻. 服务端用WCF,宿主为window服务,客户端为Java写的安卓程序. 二.客户端 我在eclipse里新建了个Android项目,命名为MyNewClient,eclipse自动生成二个xml布局文件,如图: 其中,fragment_main.xml是新版的布局文件,暂时不会用,把它删掉. 新建xml文件,命名为activity_foot.xml,在这里我们要做app的底部,先上代码: <?xml v