WelikeAndroid — это удобная и готовая к использованию среда разработки, которая призвана обеспечить программистам наилучший опыт программирования. Используя WelikeAndroid, вы обнаружите, что написание кода стало гораздо проще.
Модуль изоляции исключений (на стадии эксперимента): когда любой поток генерирует любое исключение, наш механизм изоляции исключений позволяет UI-потоку продолжать работу.
Http-модуль: одна строка кода для выполнения POST, GET и загрузки запросов, поддержка загрузки, оптимизированная дисковая загрузка, возможность свободно устанавливать размер кэша и время кэширования (включая постоянное кэширование и отсутствие кэширования).
Bitmap-модуль: асинхронная загрузка изображений с помощью одной строки кода, без необходимости беспокоиться о проблемах OOM, поддержка предварительной обработки изображений перед загрузкой.
Database-модуль: поддержка аннотаций NotNull, Table, ID, Ignore и других, Bean не требует геттеров и сеттеров, однократное развёртывание базы данных.
UI-манипуляции: мы предоставили полное инкапсулирование для класса Activity, наследование от базового класса может сделать код более элегантным.
Не думайте, что если функции похожи, то фреймворк не является оригинальным. Исходный код находится прямо перед вами, почему бы не взглянуть на него?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
WelikeGuard.enableGuard();
WelikeGuard.registerUnCaughtHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
WelikeGuard.newThreadToast("Возникло исключение: " + ex.getMessage() );
}
});
/**
*
* Пользовательское исключение, которое автоматически вызывает обратный вызов onCatchThrowable при возникновении исключения.
*/
@Catch(process = "onCatchThrowable")
public class CustomException extends IllegalAccessError {
public static void onCatchThrowable(Thread t){
WeLog.e(t.getName() + " выбросил исключение...");
}
}
UncaughtThrowable
, не будут перехвачены.Класс ViewPorter в Welike предоставляет плавный API для адаптации экрана. Мы можем легко выполнить адаптацию экрана с помощью набора плавных API.
ViewPorter.from(button).ofScreen().divWidth(2).commit();//ширина становится половиной экрана
ViewPorter.from(button).of(viewGroup).divHeight(2).commit();//высота становится половиной viewGroup
ViewPorter.from(button).div(2).commit();//ширина и высота становятся четвертью экрана
ViewPorter.from(button).of(this).fillWidth().fillHeight().commit();//ширина и высота заполняют активность
ViewPorter.from(button).sameAs(imageView).commit();//ширина и высота кнопки такие же, как у imageView
Давайте сначала посмотрим на информацию о фреймворке, чтобы понять её.
WelikeHttp welikeHttp = WelikeHttp.getDefault();
HttpParams params = new HttpParams();
params.putParams("app","qr.get",
"data","Test");//поместить две пары параметров и значений за один раз
//отправить запрос Get
HttpRequest request = welikeHttp.get("http://api.k780.com:88", params, new HttpResultCallback() {
@Override
public void onSuccess(String content) {
super.onSuccess(content);
WelikeToast.toast("Возвращённый JSON: " + content);
}
@Override
public void onFailure(HttpResponse response) {
super.onFailure(response);
WelikeToast.toast("Ошибка отправки JSON.");
}
@Override
public void onCancel(HttpRequest request) {
super.onCancel(request);
WelikeToast.toast("Запрос отменён.");
}});
//отменить запрос, вызовет обратный вызов onCancel()
request.cancel();
Конечно, мы предоставляем различные расширенные обратные вызовы для удовлетворения потребностей, в настоящее время мы предоставляем следующие обратные вызовы на выбор:
Если вам нужно настроить конфигурацию Http-модуля (например, время кеширования), обратитесь к HttpConfig.
//получение экземпляра WelikeBitmap по умолчанию
WelikeBitmap welikeBitmap = WelikeBitmap.getDefault();
BitmapRequest request = welikeBitmap.loadBitmap(imageView,
"http://img0.imgtn.bdimg.com/it/u=937075122,1381619862&fm=21&gp=0.jpg",
android.R.drawable.btn_star,//изображение для отображения во время загрузки
android.R.drawable.ic_delete,//изображение, отображаемое при сбое загрузки
new
``` **BitmapCallback()**
@Override
public Bitmap onProcessBitmap(byte[] data) {
//如果需要在加载时处理图片,可以在这里处理,
//если не нужно обрабатывать, то вернуть null или не переопределять этот метод.
return null;
}
@Override
public void onPreStart(String url) {
super.onPreStart(url);
WeLog.d("===========> onPreStart()");
}
@Override
public void onCancel(String url) {
super.onCancel(url);
WeLog.d("===========> onCancel()");
}
@Override
public void onLoadSuccess(String url, Bitmap bitmap) {
super.onLoadSuccess(url, bitmap);
WeLog.d("===========> onLoadSuccess()");
}
@Override
public void onRequestHttp(HttpRequest request) {
super.onRequestHttp(request);
WeLog.d("===========> onRequestHttp()");
}
@Override
public void onLoadFailed(HttpResponse response, String url) {
super.onLoadFailed(response, url);
WeLog.d("===========> onLoadFailed()");
}
});
* Если нужно настроить Config, смотрите класс BitmapConfig.
##WelikeDAO: введение
* Сначала создайте Bean.
```java
/*Таблица имён, может быть, может и нет, по умолчанию — имя класса.*/
@Table(name="USER",afterTableCreate="afterTableCreate")
public class User{
@ID
public int id;//id может быть, а может и не быть, в зависимости от того, нужен он или нет.
/*Эта аннотация означает, что поле name не может быть пустым.*/
@NotNull
public String name;
public static void afterTableCreate(WelikeDao dao){
//При создании текущей таблицы вызывается обратный вызов, здесь можно выполнить некоторую работу по инициализации таблицы.
}
}
WelikeDao db = WelikeDao.instance("Welike.db");
User user = new User();
user.name = "Lody";
db.save(user);
User savedUser = db.findBeanByID(1);
List<User> users = db.findBeans().where("name = Lody").or("id = 1").find();
User wantoUpdateUser = new User();
wantoUpdateUser.name = "NiHao";
db.updateDbByID(1,wantoUpdateUser);
db.deleteBeanByID(1);
##Освойте WelikeActivity за десять секунд
=>@initData (все методы, помеченные InitData, будут вызваны первыми в дочернем потоке)
=>initRootView(bundle)
=>@JoinView (автоматически findViewByID и setOnClickListener для просмотра с этой аннотацией)
=>onDataLoaded (обратный вызов при загрузке данных)
=>события кликов будут вызывать onWidgetClick (виджет View)
###Подробности о @JoinView:
@JoinView(name = "welike_btn")
Button welikeBtn;
@JoinView(id = R.id.welike_btn)
Button welikeBtn;
@JoinView(name = "welike_btn",click = false)
Button welikeBtn;
click
равно true
, автоматически вызовет метод view setOnClickListener и вызовет обратный вызов в onWidgetClick
.Button
, click
по умолчанию равно true
, для других видов по умолчанию равно false
.##Есть вопросы?
Если у вас возникнут проблемы при использовании, пожалуйста, свяжитесь со мной. Вы можете использовать следующие способы связи:
382816028
382816028@qq.com
142853711
и обсуждайте с другими участниками.Git
: https://github.com/FinalLody/WelikeAndroid
Git@OSC
: http://git.oschina.net/lody/WelikeAndroid
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )