下面列出了android.graphics.drawable.Drawable#Callback() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
ImageAssetBitmapManager(Drawable.Callback callback, String imagesFolder,
ImageAssetDelegate assetDelegate, Map<String, LottieImageAsset> imageAssets) {
assertNotNull(callback);
this.imagesFolder = imagesFolder;
if (!TextUtils.isEmpty(imagesFolder) &&
this.imagesFolder.charAt(this.imagesFolder.length() - 1) != '/') {
this.imagesFolder += '/';
}
if (!(callback instanceof View)) {
Log.w(L.TAG, "LottieDrawable must be inside of a view for images to work.");
this.imageAssets = new HashMap<>();
context = null;
return;
}
context = ((View) callback).getContext();
this.imageAssets = imageAssets;
setAssetDelegate(assetDelegate);
}
public ImageAssetManager(Drawable.Callback callback, String imagesFolder,
ImageAssetDelegate delegate, Map<String, LottieImageAsset> imageAssets) {
this.imagesFolder = imagesFolder;
if (!TextUtils.isEmpty(imagesFolder) &&
this.imagesFolder.charAt(this.imagesFolder.length() - 1) != '/') {
this.imagesFolder += '/';
}
if (!(callback instanceof View)) {
Logger.warning("LottieDrawable must be inside of a view for images to work.");
this.imageAssets = new HashMap<>();
context = null;
return;
}
context = ((View) callback).getContext();
this.imageAssets = imageAssets;
setDelegate(delegate);
}
/**
* Sets callback to the drawable.
* @param drawable drawable to set callbacks to
* @param callback standard Android Drawable.Callback
* @param transformCallback TransformCallback used by TransformAwareDrawables
*/
public static void setCallbacks(
Drawable drawable,
@Nullable Drawable.Callback callback,
@Nullable TransformCallback transformCallback) {
if (drawable != null) {
drawable.setCallback(callback);
if (drawable instanceof TransformAwareDrawable) {
((TransformAwareDrawable) drawable).setTransformCallback(transformCallback);
}
}
}
public FontAssetManager(Drawable.Callback callback, @Nullable FontAssetDelegate delegate) {
this.delegate = delegate;
if (!(callback instanceof View)) {
Logger.warning("LottieDrawable must be inside of a view for images to work.");
assetManager = null;
return;
}
assetManager = ((View) callback).getContext().getAssets();
}
/**
* Sets callback to the drawable.
* @param drawable drawable to set callbacks to
* @param callback standard Android Drawable.Callback
* @param transformCallback TransformCallback used by TransformAwareDrawables
*/
public static void setCallbacks(
Drawable drawable,
@Nullable Drawable.Callback callback,
@Nullable TransformCallback transformCallback) {
if (drawable != null) {
drawable.setCallback(callback);
if (drawable instanceof TransformAwareDrawable) {
((TransformAwareDrawable) drawable).setTransformCallback(transformCallback);
}
}
}
/**
* Sets callback to the drawable.
*
* @param drawable drawable to set callbacks to
* @param callback standard Android Drawable.Callback
* @param transformCallback TransformCallback used by TransformAwareDrawables
*/
public static void setCallbacks(
@Nullable Drawable drawable,
@Nullable Drawable.Callback callback,
@Nullable TransformCallback transformCallback) {
if (drawable != null) {
drawable.setCallback(callback);
if (drawable instanceof TransformAwareDrawable) {
((TransformAwareDrawable) drawable).setTransformCallback(transformCallback);
}
}
}
@Test
public void testSetCurrent() {
Drawable.Callback callback = mock(Drawable.Callback.class);
mSettableDrawable.setCallback(callback);
mSettableDrawable.setDrawable(mUnderlyingDrawable1);
verify(mUnderlyingDrawable0).setCallback(null);
verify(mUnderlyingDrawable1).setCallback(isNotNull(Drawable.Callback.class));
verify(callback).invalidateDrawable(mSettableDrawable);
}
/**
* 获取View类型的回调
*
* @param drawable Drawable
* @return View
*/
static View getViewCallback(Drawable drawable) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
return null;
final Drawable.Callback callback = drawable.getCallback();
if (callback instanceof View)
return (View) callback;
else if (callback instanceof Drawable)
return getViewCallback((Drawable) callback);
else
return null;
}
@TargetApi(HONEYCOMB)
public S hasCallback(Drawable.Callback callback) {
isNotNull();
Drawable.Callback actualCallback = actual.getCallback();
assertThat(actualCallback) //
.overridingErrorMessage("Expected callback <%s> but was <%s>.", callback, actualCallback) //
.isSameAs(callback);
return myself;
}
void setCallback(Drawable.Callback callback) {
this.mCallback = callback;
}
void setCallback(Drawable.Callback callback) {
this.mCallback = callback;
}
void setCallback(Drawable.Callback callback)
{
this.mCallback = callback;
}
private void verifyCallback(Drawable parent, Drawable child) {
Drawable.Callback callback = mock(Drawable.Callback.class);
parent.setCallback(callback);
child.invalidateSelf();
verify(callback).invalidateDrawable(any(Drawable.class));
}
void setCallback(Drawable.Callback cb);