写这个app之前是因为看了头条的一篇文章:http://www.managershare.com/post/155110,然后心想要不做一个这样的app,让手机计算就行了。也就没多想就去开始整了。

 
项目用到了三个开源包:
 
 
使用方法:
1.在Appliction的onCreate里初始化
/**
* 初始化imageLoader
*/
public void initImageLoader() {
File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext());
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext())
.memoryCache(new LruMemoryCache(5 * 1024 * 1024))
.memoryCacheSize(10 * 1024 * 1024)
.discCache(new UnlimitedDiscCache(cacheDir))
.discCacheFileNameGenerator(new HashCodeFileNameGenerator())
.build();
ImageLoader.getInstance().init(config);
} public DisplayImageOptions getOptions(int drawableId) {
return new DisplayImageOptions.Builder().showImageOnLoading(drawableId)
.showImageForEmptyUri(drawableId).showImageOnFail(drawableId)
.resetViewBeforeLoading(true).cacheInMemory(true)
.cacheOnDisc(true).imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565).build();
}

  2.使用时调用:

ImageLoader.getInstance().displayImage(
avatarUrl,
holder.mImage,
MyApplication.getInstance().getOptions(
R.drawable.user_icon_default_main),
new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
}
});
 
 
使用方法:
// 设置PullToRefresh
mListView.setMode(Mode.BOTH);
mListView.setOnRefreshListener(new OnRefreshListener2<ListView>() {
// 下拉Pulling Down
@Override
public void onPullDownToRefresh(
PullToRefreshBase<ListView> refreshView) {
String label = DateUtils.formatDateTime(MainAct.this,
System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME
| DateUtils.FORMAT_SHOW_DATE
| DateUtils.FORMAT_ABBREV_ALL);
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
mListView.setMode(Mode.BOTH);
pullFromUser = true;
mRefreshType = RefreshType.REFRESH;
pageNum = 0;
lastItemTime = getCurrentTime();
//获取数据
fetchData();
} // 上拉Pulling Up
@Override
public void onPullUpToRefresh(
PullToRefreshBase<ListView> refreshView) {
// 上拉的时候添加选项
mRefreshType = RefreshType.LOAD_MORE;
//获取数据
fetchData();
} });
actualListView = mListView.getRefreshableView();
actualListView.setFastScrollEnabled(true);
mEntities = new ArrayList<RankEntity>();
mAdapter = new MainListAdapter(MainAct.this, mEntities);
actualListView.setAdapter(mAdapter);
if (mEntities.size() == 0) {
fetchData();
}
mListView.setState(State.RELEASE_TO_REFRESH, true);

  

 这个源码包有修改过,只使用了单选这个Fragment!内容比较多想看的下载代码吧
 
 
项目虽然很渣很没新意,完成是出于一个瞬间的念头,开发完成后自己测试都觉得无聊,40多个选择,点到手抽筋!然后又加上了一个自动翻页的开关!

网盘无积分下载:http://yunpan.cn/cAbWf2QVih6wV  提取码 9abb
 
QQ:471497524
微信:519659991
 
新开的交流群,欢迎广州的开发者加入: http://jq.qq.com/?_wv=1027&k=cgvXpA,另外群里有一个HR需要找一位1年工作经验以上,能够独立开发App的安卓哥,正在找工作的一定要加这个群阿
 
最后附截图:

【Android】 分享一个完整的项目,适合新手!的更多相关文章

  1. 一个完整的项目中,需要的基本gulp

    一个完整的项目需要使用gulp的多种功能,包括—— (1)加载各种需要的插件 var concat=require('gulp'); var clean=require(''gulp); 等等.需要的 ...

  2. android:分享 一个很强大的LOG开关---Log.isLoggable

    标签:android分享 一个很强大的log开 1.API亮点: 此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率. 2.API介绍 最近在解决短信问题时,看到 ...

  3. asp.netmvc 三层搭建一个完整的项目

    接下来用 asp.net mvc 三层搭建一个完整的项目: 架构图: 使用的数据库: 一张公司的员工信息表,测试数据 解决方案项目设计: 1.新建一个空白解决方案名称为Company 2.在该解决方案 ...

  4. 如何基于Spring Boot搭建一个完整的项目

    前言 使用Spring Boot做后台项目开发也快半年了,由于之前有过基于Spring开发的项目经验,相比之下觉得Spring Boot就是天堂,开箱即用来形容是绝不为过的.在没有接触Spring B ...

  5. android 分享一个处理BaseAdapter,getView()多次加载的方法

    一:BaseAdapter介绍 BaseAdapter是listview,gridview等列表,使用的数据适配器,它的主要用途是将一组数据传到ListView.Spinner.Gallery及Gri ...

  6. 分享一个集成在项目中的REST APIs文档框架swagger

    1 为什么是使用swagger? 1-1 当后台开发人员开发好接口,是不是还要重新书写一份接口文档提给前端人员,当然对于程序员最不喜欢的就是书写文档(当然文档是必须的,有利于项目的维护) 1-2 当后 ...

  7. Android Studio 一个完整的APP实例(附源码和数据库)

    前言: 这是我独立做的第一个APP,是一个记账本APP. This is the first APP, I've ever done on my own. It's a accountbook APP ...

  8. Android 分享一个SharedPreferences的工具类,方便保存数据

    我们平常保存一些数据,都会用到SharedPreferences,他是保存在手机里面的,具体路径是data/data/你的包名/shared_prefs/保存的文件名.xml, SharedPrefe ...

  9. 分享一个完整的Mybatis分页解决方案

    Mybatis 的物理分页是应用中的一个难点,特别是配合检索和排序功能叠加时更是如此. 我在最近的项目中开发了这个通用分页器,过程中参考了站内不少好文章,阅读源码帮助更大minglisoft.cn/t ...

随机推荐

  1. 常见的Js

    //根据单独的值切换所有复选框 $("input[type='checkbox']").prop("checked", function( i, val ) { ...

  2. Nginx 负载均衡 后端 监控检测 nginx_upstream_check_module 模块的使用

    在使用nginx 的负载均衡 中,我们通常会使用到 Nginx 自带的 ngx_http_proxy_module 健康检测模块. ngx_http_proxy_module 自带的 健康检测模块参数 ...

  3. 学习wcf

    链接请看下面 第一部分:http://boytnt.blog.51cto.com/966121/796884 第二部分:http://boytnt.blog.51cto.com/966121/7969 ...

  4. iOS开发——单例模式

    一.用if语句实现单例 1.在.h文件中 #import <Foundation/Foundation.h> @interface YYTRequestTool : NSObject +( ...

  5. python threading模块中对于信号的抓取

    最近的物联网智能网关(树莓派)项目中遇到这样一个问题:要从多个底层串口读取发来的数据,并且做出相应的处理,对于每个串口的数据的读取我能想到的可以采用两种方式: 一种是采用轮询串口的方式,例如每3s向每 ...

  6. NOIP前刷水行动

    2016.11.15 BZOJ1009:DP+矩阵乘法+KMP BZOJ1898:矩阵乘法 BZOJ4101:贪心,考虑我们往右边撞的时候,我们会向左边冲 ,于是枚举答案点利用一个指针计算即可! 20 ...

  7. Struts2标签遍历List<Map<String,String>>

    <s:if test="resultList != null && resultList.size() > 0"> <s:iterator  ...

  8. Struts2动态方法调用

    动态方法就是一个Action对应多个请求,减少Action的数量 1.指定method属性 <action name="addAction" method="add ...

  9. 限制EditText的输入字数

    private EditText edit_student_name; edit_student_name.addTextChangedListener(changeStudentNameWatche ...

  10. iOS 之 ARC 的内存泄露

    循环引用导致内存泄露,如block容易内存泄露