前言:本篇基於4.8.0版本
【原始碼閱讀】glide原始碼閱讀之with方法(一)
【原始碼閱讀】glide原始碼閱讀之load方法(二)
【原始碼閱讀】glide原始碼閱讀之into方法(三)
大多數情況下,我們使用glide 就一句**
但是這一句**裡面蘊含著成噸的**!
with方法有以下幾個過載方法
public
static requestmanager with
(@nonnull context context)
public
static requestmanager with
(@nonnull activity activity)
public
static requestmanager with
(@nonnull fragmentactivity activity)
public
static requestmanager with
(@nonnull fragment fragment)
public
static requestmanager with
(public
static requestmanager with
(@nonnull view view)
其中,getretriever返回的是個requestmanagerretriever物件
private
static requestmanagerretriever getretriever
(@nullable context context)
@nonnull
(@nonnull context context)}}
}
public requestmanager get
(@nonnull context context)
else
if(util.
isonmainthread()
&&!(context instanceof))
else
if(context instanceof
activity
)else
if(context instanceof)}
return
(context)
;}
@nonnull
private supportrequestmanagerfragment getsupportrequestmanagerfragment
(@nonnull
final fragmentmanager fm,
@nullable fragment parenthint,
boolean isparentvisible)
pendingsupportrequestmanagerfragments.
put(fm, current)
; fm.
begintransaction()
.add
(current, fragment_tag)
.commitallowingstateloss()
; handler.
obtainmessage
(id_remove_support_fragment_manager, fm)
.sendtotarget()
;}}return current;
}
@nonnull
private requestmanagerfragment getrequestmanagerfragment
(@nonnull
boolean isparentvisible)
pendingrequestmanagerfragments.
put(fm, current)
; fm.
begintransaction()
.add
(current, fragment_tag)
.commitallowingstateloss()
; handler.
obtainmessage
(id_remove_fragment_manager, fm)
.sendtotarget()
;}}return current;
}
supportrequestmanagerfragment中部分**
@override
public
void
onattach
(context context)
catch
(illegalstateexception e)}}
@override
public
void
ondetach()
@override
public
void
onstart()
@override
public
void
onstop()
@override
public
void
ondestroy()
activityfragmentlifecycle相關**
@override
public
void
addlistener
(@nonnull lifecyclelistener listener)
else
if(isstarted)
else
}@override
public
void
removelistener
(@nonnull lifecyclelistener listener)
void
onstart()
}void
onstop()
}void
ondestroy()
}
原始碼閱讀 Glide原始碼閱讀之load方法(二)
原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 首先,load方法有以下幾個過載方法 public requestbuilder load nullable bitmap bitmap public requestbuilder load nu...
《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具
檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...
global原始碼閱讀
2 編譯安裝 configure prefix your install dir make make install 3 使用時注意先gtags後htags,如果直接執行htags會提示找不到gtags。如果是在普通使用者許可權安裝global,比如 prefix work yourname usr...