/* * Created by LuaView. * Copyright (c) 2017, Alibaba Group. All rights reserved. * * This source code is licensed under the MIT. * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree. */ package com.taobao.luaview.view.imageview; import android.app.Activity; import android.content.Context; import com.taobao.luaview.global.LuaView; import com.taobao.luaview.provider.ImageProvider; import java.lang.ref.WeakReference; /** * ImageView Impl * * @author song * @date 16/3/9 */ public class LVBaseImageView extends BaseImageView { private String mUrl; public LVBaseImageView(Context context) { super(context); initRecycler(context); } private void initRecycler(Context context) { if (context instanceof Activity) { ImageActivityLifeCycle.getInstance(((Activity) context).getApplication()).watch(this); } } @Override public void loadUrl(final String url, final LoadCallback callback) { this.mUrl = url; final ImageProvider provider = LuaView.getImageProvider(); if (provider != null) { provider.load(getContext(), new WeakReference<BaseImageView>(this), url, new WeakReference<LoadCallback>(callback)); } } @Override public String getUrl() {//TODO 本地图片的时候,获取的是空的 return mUrl; } public void setUrl(String url) { this.mUrl = url; } @Override protected void onAttachedToWindow() { restoreImage(); super.onAttachedToWindow(); } @Override protected void onDetachedFromWindow() { releaseBitmap(); super.onDetachedFromWindow(); } public void restoreImage() {// 恢复被清空的image if (isNetworkMode) { loadUrl(mUrl, null); } } public void releaseBitmap() {// 释放图片内存 if (isNetworkMode) { setImageDrawable(null); } } }