編輯:關於Android編程
那麼問題來了,人家都解釋完了我干嘛?實操個簡單的例子吧,正好上周講了篇Glide的那麼這次就實踐下
效果圖:
我們點開App然後就是一個RecycleView裡面有一堆圖然後還有文字,文字是本地的,圖是網上下的,邏輯流程很簡單,來說一下怎麼實現的然後引出主角。
包結構:
GlideModuleConfig配置Glide 這裡做一些配置工作,具體干什麼可以看注釋 TestOBJ用於給RecycleView引用圖片地址和文字內容 翔哥那個類不解釋了,可以自己去搜搜百度第一條就是,我們再來看看適配器 DataAdapter(重要步驟的解釋也在注釋裡了) 數據層已經OK了,我們來看看業務層 解釋: 注冊的行為開始後,只咬被觀察者一有風吹草動,觀察者的相關回調就會被觸發,我們來看下Log的打印順序
StatusBarCompat<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPrPBvf7KvbLLtaXAuMq1z9ajqM/ouOfEx7/bwLS1xKOs1eK49sbkyrW/ydPQv8nO3tb30qrErMjPtcTR1cmrzKuz86OpPGJyIC8+DQo8c3Ryb25nPlRlc3RPQko8L3N0cm9uZz7Ss8PmttTP87XEyvTQ1MSj0M2jqMTj0rK/ydLUsrvTw6OsuPbIy8+wud+jqTxiciAvPg0KyLu6877NysfStc7xyrXP1rXETWFpbkFjdGl2aXR5us3KysXkxvdEYXRhQWRhcHRlcsHLPC9wPg0KPHA+ztLDx9K7uPbSu7j2wOC/tM/IysdHbGlkZU1vZHVsZUNvbmZpZzwvcD4NCjxwcmUgY2xhc3M9"brush:java;">
/**
* Created by jiajiewang on 16/3/25.
*/
public class GlideModuleConfig implements GlideModule {
//在這裡創建設置內容,之前文章所提及的圖片質量就可以在這裡設置
//還可以設置緩存池參數什麼的
@Override
public void applyOptions(Context context, GlideBuilder builder) {
//設置了默認圖片格式
builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
//設置了緩存的位置
builder.setDiskCache(new ExternalCacheDiskCacheFactory(context,"MY_CACHE_LOCATION", 100*1024*1024));
}
//在這裡注冊ModelLoaders
@Override
public void registerComponents(Context context, Glide glide) {
}
}
public class TestOBJ {
public String imageUrl;
public String content;
}
public class DataAdapter extends RecyclerView.Adapter {
Context context;
List
public class MainActivity extends AppCompatActivity {
Toolbar toolBar;
RecyclerView recycleView;
DataAdapter dataAdapter;
//URL數據源
String data[] = {"http://hiphotos.baidu.com/zhixin/abpic/item/4651a712c8fcc3cea97dbce49045d688d53f206c.jpg"
, "http://pic.5442.com/2014/0930/06/5442.jpg",
"http://img5q.duitang.com/uploads/item/201410/22/20141022214043_5EEKH.thumb.224_0.jpeg",
"http://img5.duitang.com/uploads/item/201512/08/20151208163159_HGEM2.thumb.224_0.png",
"http://img4.duitang.com/uploads/item/201510/29/20151029224537_ijEKF.thumb.224_0.jpeg",
"http://img5.imgtn.bdimg.com/it/u=1230273521,1023320328&fm=21&gp=0.jpg"
};
//被觀察者
Observable observable = Observable.create(new Observable.OnSubscribe
>() {
@Override
public void call(Subscriber> subscriber) {
subscriber.onNext(makeData());
subscriber.onCompleted();
}
});
//觀察者
Observer
> observer = new Observer
>() {
@Override
public void onCompleted() {
LogUtils.d("--->onCompleted");
}
@Override
public void onError(Throwable e) {
Toast.makeText(MainActivity.this, "加載失敗", Toast.LENGTH_SHORT).show();
}
@Override
public void onNext(List
我們定義了一個觀察者和一個被觀察者然後自從
observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer);
還是在一堆的Activity生命周期裡先跑在我們數據摸你的過程中看了可能我們Glide緩存的目錄,跟我們的預設一致,接著就執行了 onNext再是onCompleted,因為沒出什麼意外也就沒刷出onError
/data/user/0/sample.wjj.rxandroidglidedemo/cache/MY_CACHE_LOCATION
學習android三天了,發現這個ListView在android裡應用非常的多,於是就花了一些時間仔細學習了一下! 以下是我個人的理解,如果有錯誤或不周到的地方,還請各
本文實例講述了Android編程實現任務管理器的方法。分享給大家供大家參考,具體如下:任務管理器可以實現的功能有:1.查看當前系統下運行的所有的進程2.可以查看每個進程的
實現功能:已存在歌曲歌詞下載後續將博文,將實現已下載音樂掃描功能。因為,沒有自己的服務器,所以網絡音樂所有相關功能(包含搜索音樂、下載音樂、下載歌詞)均無法保證時效性,建
在前面一篇文章Android系統進程間通信(IPC)機制Binder中的Server