Anroid 加载图片方式一 使用SmartImageView
来源:互联网 发布:matlab和python 编辑:程序博客网 时间:2024/06/06 20:10
首先到github网站下载SmartImageView,拷贝到工程
使用方式
public class SmartImageViewActivity extends BaseActivity { private EditText mUrl; private SmartImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_smart_image); mUrl = (EditText) findViewById(R.id.editText1); mImageView = (SmartImageView) findViewById(R.id.smartimage); } public void loadImage(View view){ String url = mUrl.getText().toString().trim(); mImageView.setImageUrl(url, R.drawable.ic_launcher, R.drawable.ic_launcher); }}
SmartImageView源码
public class SmartImageView extends ImageView { private static final int LOADING_THREADS = 4; private static ExecutorService threadPool = Executors.newFixedThreadPool(LOADING_THREADS); private SmartImageTask currentTask; public SmartImageView(Context context) { super(context); } public SmartImageView(Context context, AttributeSet attrs) { super(context, attrs); } public SmartImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } // Helpers to set image by URL public void setImageUrl(String url) { setImage(new WebImage(url)); } public void setImageUrl(String url, SmartImageTask.OnCompleteListener completeListener) { setImage(new WebImage(url), completeListener); } public void setImageUrl(String url, final Integer fallbackResource) { setImage(new WebImage(url), fallbackResource); } public void setImageUrl(String url, final Integer fallbackResource, SmartImageTask.OnCompleteListener completeListener) { setImage(new WebImage(url), fallbackResource, completeListener); } public void setImageUrl(String url, final Integer fallbackResource, final Integer loadingResource) { setImage(new WebImage(url), fallbackResource, loadingResource); } public void setImageUrl(String url, final Integer fallbackResource, final Integer loadingResource, SmartImageTask.OnCompleteListener completeListener) { setImage(new WebImage(url), fallbackResource, loadingResource, completeListener); } // Helpers to set image by contact address book id public void setImageContact(long contactId) { setImage(new ContactImage(contactId)); } public void setImageContact(long contactId, final Integer fallbackResource) { setImage(new ContactImage(contactId), fallbackResource); } public void setImageContact(long contactId, final Integer fallbackResource, final Integer loadingResource) { setImage(new ContactImage(contactId), fallbackResource, fallbackResource); } // Set image using SmartImage object public void setImage(final SmartImage image) { setImage(image, null, null, null); } public void setImage(final SmartImage image, final SmartImageTask.OnCompleteListener completeListener) { setImage(image, null, null, completeListener); } public void setImage(final SmartImage image, final Integer fallbackResource) { setImage(image, fallbackResource, fallbackResource, null); } public void setImage(final SmartImage image, final Integer fallbackResource, SmartImageTask.OnCompleteListener completeListener) { setImage(image, fallbackResource, fallbackResource, completeListener); } public void setImage(final SmartImage image, final Integer fallbackResource, final Integer loadingResource) { setImage(image, fallbackResource, loadingResource, null); } public void setImage(final SmartImage image, final Integer fallbackResource, final Integer loadingResource, final SmartImageTask.OnCompleteListener completeListener) { // Set a loading resource if(loadingResource != null){ setImageResource(loadingResource); } // Cancel any existing tasks for this image view if(currentTask != null) { currentTask.cancel(); currentTask = null; } // Set up the new task currentTask = new SmartImageTask(getContext(), image); currentTask.setOnCompleteHandler(new SmartImageTask.OnCompleteHandler() { @Override public void onComplete(Bitmap bitmap) { if(bitmap != null) { setImageBitmap(bitmap); } else { // Set fallback resource if(fallbackResource != null) { setImageResource(fallbackResource); } } if(completeListener != null){ completeListener.onComplete(bitmap); } } }); // Run the task in a threadpool threadPool.execute(currentTask); } public static void cancelAllTasks() { threadPool.shutdownNow(); threadPool = Executors.newFixedThreadPool(LOADING_THREADS); }}
0 0
- Anroid 加载图片方式一 使用SmartImageView
- Android之使用SmartImageView加载图片
- SmartImageView重新实现网络图片的加载
- SmartImageView重新实现网络图片的加载
- Android SmartImageView的使用(堪与ImageLoader加载图片媲美)
- SmartImageView使用
- 【anroid】Picasso图片的加载显示。
- 使用SmartImageView控件实现网络图片的浏览
- Android SmartImageView使用实例
- SmartImageView框架使用
- SmartImageView的使用
- SmartImageView框架使用
- SmartImageView的简单使用
- 加载图片的三种方式使用
- 【Android之SmartImageView图片控件】
- 图片加载框架---UniversalImageLoader使用(一)
- 图片加载框架---UniversalImageLoader使用(一)
- 图片加载框架---UniversalImageLoader使用(一)
- javascript中获取参数的方法
- 【GMT】使用变量的时候,空格不可以乱加
- tcp协议案例
- 3--编译预处理
- 栈的运用-四则运算表达式求值
- Anroid 加载图片方式一 使用SmartImageView
- 使用SQl方法把多行字符直接转换成相应的表输出
- 全端工程师必备技能汇总
- ZOJ 3946 Highway Project(Dijkstra)
- 优先级队列
- 官文:从今天开始开发iOS应用(Swift)第一章4~5节纯中文
- 训练深度神经网络的时候需要注意的技巧
- XDU-1138 Z1+Z2 (水~复数相加) From 西电校赛网络赛
- 庖丁解牛之仿《闪传》实现文件传输(中)