COCOFrame它是一个轻量级的开发框架,综合Android APP开发过程中经常使用的工具,方法,特效.当中F类採用的AndroidQuery实现,做了进一步的封装及部分优化.

1. Jar包大小:166K

2. 下载地址:http://download.csdn.net/detail/landehuxi/7673747

3. 解压缩,项目导入COCOFrame.jar

4. 直接在代码中使用S,F,U三个类就可以.

(一)S 工具服务-service

初始化:S.init(this); //假设继承自BaseActivity则不用初始化.

S.SDCardService SD卡服务(获取SD卡路径,获取SD卡容量,)

S.SMService 短信服务(编辑发送短信,静默发送短信)

S.AppService 应用级别服务 (应用启动, 启动Activity,杀死线程,获取包名,获取版本号)

S.EncryptService 加密服务(MD5加密, DES加密/解密,RES加密解密)

S.DBService 数据库服务

S.DisplayService 显示相关服务(屏幕宽高,像素,dp转换, 调节屏幕亮度)

S.EmailService 邮件服务(静默发送邮件, 用户编辑邮件, 带附件的邮件)

S.HttpService 网络服务,眼下为空,直接採用F类的网络请求方法就可以.

S.ImgService 图片服务(滤镜,灰度,获取Bitmap,水印,放大缩小图片)

S.IOService 本地存储服务(asset存储,SD卡存储,SP存储)

S.KeyBoradService(隐藏软键盘,打开软键盘,查看键盘状态)

S.PhoneService(获取手机型号,获取SIM卡信息,获取电量,获取内存大小,获取手机品牌)

S.ClearService 内存释放清空服务(关闭流,回收Bitmap,回收Map,List,关闭数据库游标)

S.StringService 字符串服务(集成TextUtils,数字转文件体积,经常使用正则等)

S.GPService 地理位置服务.(当前用户所在国家,省,市,区,街道,邮编,经纬度,经纬度计算)

S.NetworkService 网络服务(网络类型,是否有网络,应用的上行流量,下行流量)

S.BatteryService 电池服务(电量,USB或直流电,电压,温度,电池品牌)

(二)F 极速开发-fast

F内置了开源项目AndroidQuery的实现,做了进一步的封装及部分优化,

初始化

F=new F(this); //假设继承自BaseActivity可直接使用F

基本使用方式

1.初始化控件,绑定监听器

F.id(R.id.btnLogin).clicked(listener)

F.id(R.id.btnLogin).clicked(this, "loginMethod");

F.id(R.id.textView).text(“test”);//设置文字

F.id(R.id.imgView).image(Bitmap);//设置图片.

F.id(R.id.imgView).image(“http://www.test.com/test.png”);//设置图片.同样地址的图片不会反复下载

F.id(R.id.imgView).image(“sdcard/test/test.png”);//设置图片.

F.id(R.id.imgView).image(Drawable);//设置图片.

F.id(R.id.imgView).image(id);//设置图片.

F.id(R.id.imgView).image(File);//设置图片.

F.id(R.id.ImageView).image(file, 300);//设置图片宽是300像素. 降低此宽度可有效降低图片内存占用.

F.id(R.id.imgView).image(url,false,false,50,50,bitmpaHolder,0,1.5f);//设置图片-多參数模式

n 图片下载地址

n 忽略

n 是否缓存

n 图片高度(决定了图片大小,0为原图大小)

n 忽略

n 站位图片,假设图片由于某种错误没显示,则用此图取代.(例:Bitmap bitmpaHolder=F.getCachedImage(android.R.drawable.star_on))

n 图片出现时的效果(比如:F.FADE_IN)

n 宽高比率,同一时候决定了图片总体宽高比

图片压缩处理:

ImageOptions options = new ImageOptions();

options.ratio = 1;//质量比率

options.anchor = 1.0;   //部分显示图片来达到缩小内存效果.  1.0显示图片顶端,  0显示图片中间,  -1.0显示图片底部  AQuery.ANCHOR_DYNAMIC动态

F.id(R.id.image).image(imageUrl, options);

2.发送网络请求

F.progress(U.Dialog(this));//网络请求添加等待效果

F.progress(F.id(R.id.Process)).download()//文件下载添加进度条.

AjaxCallback.setTimeout(15);//设置timeout,单位秒

覆盖AjaxCallback的timeout方法能够实现自己的网络超时动作,如读取缓存,友好提示等

发送网络请求

(1)带參数,不使用缓存,不使用映射.

HashMap < String,String > params = new HashMap < String,String > ();

params.put("formMap.USER_CODE", editName.getText().toString());

params.put("formMap.PASSWORD", editPassword.getText().toString());

F.progress(U.ViewWait(this).showWait()).ajax(URL_LOGIN, params, JSONObject.class, new AjaxCallback < JSONObject > () {@Override public void callback(String url, JSONObject json, AjaxStatus status) {

try {

String result = json.getString("result");

String key = json.getString("key");

JSONObject userinfo = json.getJSONObject("userinfo");

if ("1000".equals(result)) {

Toast.makeText(LoginActivity.this,"SthWrong!", Toast.LENGTH_LONG).show();

} else {

S.AppService.startAcvitity(LoginActivity.this, MainActivity.class);

finish();

}

} catch(JSONException e) {

e.printStackTrace();

}

}

});

}

(2)不带參数,不缓存,映射本地方法jsonCallBack:

public void asyncJson(){

String url="http://www.google.com/uds/GnewsSearch?

q=Obama&v=1.0";

aq.ajax(url, JSONObject.class, this, "jsonCallback");

}

public void jsonCallback(String url, JSONObject json, AjaxStatus status){

if(json != null){

//successful ajax call

}else{

//ajax error

}

}

(3)使用缓存

參数说明:

F.CACHE_TIME_1H;//缓存一小时

F.CACHE_TIME_24H;//缓存一天

F.CACHE_TIME_30M;//缓存30分钟

F.CACHE_TIME_DEFALUT;//框架默认

F.CACHE_TIME_UPDATA;//立即更新

可自行设置时间,单位毫秒.

//比如缓存1小时,则接口首次请求成功后返回的data将被存储,1小时内不管有无网络,应用重新启动,开关机等都将正常返回data,不会再次发送网络请求.假设想立即更新数据,可设置时间为F.CACHE_TIME_UPDATA.会立即获取最新的接口数据.

F.ajax(url, params,JSONObject.class, F.CACHE_TIME_1H, new AjaxCallback<JSONObject>() {

@Override

public void callback(String url, JSONObject json, AjaxStatus status) {

swipeRefreshLayout.setRefreshing(false);

Debug.out(json);

}

});

(4)下载文件-无进度条

F.download(url,file,new AjaxCallback<File>() {

@Override

public void callback(String url, File file,

AjaxStatus status) {

//文件完成下载的处理

}

});

(5)下载文件-有进度条

F.progress(F.id(R.id.process_DownApk).getProgressBar()).download(

URL_APK, apkFile, AjaxCallback<File>() {

@Override

public void callback(String url, File file,

AjaxStatus status) {

//文件完成下载的处理

}

});

(6)上传文件

String url = "http://www.test.com/upLoadFile.do";

Map<String, Object> params = new HashMap<String, Object>();

byte[] data = new byte[1000];

params.put("source", data);

File file = new File("test.png");

params.put("source", file);

F.ajax(url, params, JSONObject.class, this, "method");//method为上传成功后,调用的方法

(三)U 界面控件-ui

n 出现等待效果: U.Dialog().showWait();

n 取消等待效果: U.Dialog().cancelWait();

n 获取能显示GIF的View: U.View_Gif();

n 获取颜色选择器: U.View_SelectColor();

n 获取图片滤镜: U.ImageView_filter();//使图片变暗,变亮,饱和度变化,彩色变黑白

n 为指定控件加入摇一摇监听器: U.ListenShake(context, onShakeListener);

n 为图片添加手指缩放效果: U.ImageView_zoomTouch(view);

n 为控件添加点击效果(不须要图片,浅色图效果不明显): U.View_click(view);

n 为控件添加闪烁效果: U.view_toggle(view);

n 为ListView添加下拉刷新效果:(须要COCOBuild的createFolder任务支持)

1.<android.support.v4.widget.SwipeRefreshLayout

android:id="@+id/coco_ListRefresh"

android:layout_width="match_parent"

android:layout_height="match_parent" >

2.implements OnRefreshListener;

3.SwipeRefreshLayout sp=U.Effect_pullRefresh(this,this);

4.sp.setRefreshing(false);

n 显示确认Dialog: U.Dialog().showMakeSure();

n 显示选择Dialog: U.Dialog().showSelect();

n 採用反射强制Dialog是否能退出:U.Dialog().cancelAble(boolean);

n 实现了多个View之间的滑动切换U.View_RLFlippe();

1. View_RLFlippe views=U.View_RLFlippe(Context);

2. views.addView(view1);

3. views.addView(view2);

4. views.addView(view3);

view1,view2,view3之间就可以手机滑动切换.

时间有限,以上仅仅粗略列出了COCOFrame小部分功能,使用方式非常easy,可自行下载jar包使用.第一版不保证没bug

此贴将持续更新.

下载地址:http://download.csdn.net/detail/landehuxi/7673747

版权声明:本文博主原创文章,博客,未经同意不得转载。

COCOFrame的更多相关文章

  1. COCO-Android开发框架公布

    一. COCO-Android说明 二. COCO-Android结构图 三. COCOBuild 四. COCOFrame 一.COCO-Android说明 1. COCO-Android是支撑An ...

随机推荐

  1. CF 460C Present 【DP+】主意

    给你n高树花.m日,每天连续浇筑w鲜花.一天一次,花长1高度单位 求m天后.最矮的花最高是多少 最大最小问题能够用二分来解 首先我们能够得到全部花的最矮高度即答案的下界,给这个花浇m天即是答案的上界 ...

  2. Study note for Continuous Probability Distributions

    Basics of Probability Probability density function (pdf). Let X be a continuous random variable. The ...

  3. Go by Example

    Go by Example Go is an open source programming language designed for building simple, fast, and reli ...

  4. 【Android】应用启动画面

    几乎所有的Android应用程序都会有一个启动画面,展示自己的LOGO,本版信息,或者更人性化一点的,在很长的加载信息中,变换一些显示的文字等,让无聊的等待时间添加点调味剂. 具体实现来说,应该创建一 ...

  5. Callable 获取线程返回值

    allable与 Future 两功能是Java在兴许版本号中为了适应多并法才增加的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它 ...

  6. 理解RESTful架构(转)

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...

  7. Java EE (6) -- Java EE 5 Enterprise Architect Certified Master

    Section 1: Application Design Concepts and Principles Explain the main advantages of an object-orien ...

  8. 软件測试系统文章(文件夹&amp;链接在此)

    前言 我会在此账号上写一系列关于软件測试的文章,故在此置顶软件測试系列文章的文件夹和链接,以方便大家阅读! 文件夹 软件測试系列之入门篇(一) 软件測试系列之了解篇(二) 软件測试系列之黑白盒(三) ...

  9. DP:树DP

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  10. C/C++大型项目错误管理

    在C/C++大型项目中,错误管理在项目中起着举足轻重的作用,以我自己的项目经验以及观摩其它项目,错误管理对项目框架以及开发效率有着非常大的影响.对于错误管理的认识大致分为三类: 刚刚開始敲代码的新手, ...