Android快速开发框架 Ultimate

时间:2022-04-26
本文章向大家介绍Android快速开发框架 Ultimate,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、Ultimate 效果


2、Ultimate 说明


Ultimate 框架目前主要包含的功能有View Injection,ORM,异步网络请求和图片加载,自动化脚本测试,磁盘LRU等功能.同时提供了类似于TripleDes、Webview快速设置、Md5处理、String处理,Https处理等常用工具类,还有超过100多种UI控件效果。并且这些功能正在逐步增加中。

Ultimate 框架是如图flask框架(python)那样包含了许多其他的开源项目的框架,比如 Butter Knife,Asynchronous Http Client for Android, Universal Image Loader for Android 还有许多我在 Readme 或者 updatelog中提到的.

温馨提示:

  • 使用DemoOfUI的时候,需要注意UltimateAndroid 依赖 appcompat.UltimateAndroidUi 依赖 UltimateAndroid.DemoOfUi 依赖 UltimateAndroidUi.如果你不需要使用UiModule的话,可以直接依赖UltimateAndroid,这样体积会更纤细。Demo的Apk文件可以直接下载使用。
  • UltimateAndroid框架需要API21版本的Android SDK来进行编译,如果使用了gradle的project,android studio的版本需要大于0.9.0。
  • 大部分IDE需要开启annotation的编译(使用了Butter Knife)。

3、Ultimate 使用


例子列表:

视图注入例子

填充器注入例子

异步网络请求例子

异步网络请求例子(get)

异步网络请求例子(post)

显示图片例子

回调例子

可以使用的URI格式

视图注入例子

class ExampleActivity extends Activity {
@InjectView(R.id.title) TextView title;
@InjectView(R.id.subtitle) TextView subtitle;
@InjectView(R.id.footer) TextView footer;


@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.inject(this);
// TODO Use "injected" views...
}
}

填充器注入例子


public class MyAdapter extends BaseAdapter {
@Override public View getView(int position, View view, ViewGroup parent) {
ViewHolder holder;
if (view != null) {
holder = (ViewHolder) view.getTag();
} else {
view = inflater.inflate(R.layout.whatever, parent, false);
holder = new ViewHolder(view);
view.setTag(holder);
}
holder.name.setText("John Doe");
// etc...
return view;
}
static class ViewHolder {
@InjectView(R.id.title) TextView name;
@InjectView(R.id.job_title) TextView jobTitle;
public ViewHolder(View view) {
ButterKnife.inject(this, view);
}
}
}

异步网络请求例子(get)

HttpUtilsAsync.get("http://www.google.com", new AsyncHttpResponseHandler() {


@Override
public void onStart() {
// called before request is started
}


@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
// called when response HTTP status is "200 OK"
}


@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
}


@Override
public void onRetry(int retryNo) {
// called when request is retried
}
});

异步网络请求例子(post)

HttpUtilsAsync.post("http://www.google.com", new AsyncHttpResponseHandler() {


@Override
public void onStart() {
// called before request is started
}


@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
// called when response HTTP status is "200 OK"
}


@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
}


@Override
public void onRetry(int retryNo) {
// called when request is retried
}
});

显示图片例子

imageLoader.displayImage(imageUri, imageView, displayOptions, new ImageLoadingListener()  {
@Override
public void onLoadingStarted(String imageUri, View view) {
...
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
...
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
...
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
...
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
...
}
});

回调

// Load image, decode it to Bitmap and return Bitmap to callback
ImageSize targetSize = new ImageSize(120, 80); // result Bitmap will be fit to this size
imageLoader.loadImage(imageUri, targetSize, displayOptions, new   SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// Do whatever you want with Bitmap
}
});

可以使用的URI格式

String imageUri = "http://site.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
String imageUri = "assets://image.png"; // from assets
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images,   non-9patch)

4、Ultimate 下载


原文链接:https://github.com/apkdemo/UltimateAndroid

雾霾锁城,天上人间,住在帝都或者华北地区的朋友,要注意采取防护措施哦!看完,大家都去睡吧,晚安!