今天主要研究了Glide获取图片Path、Bitmap用法,相信也困扰了大家很久,我在网上也找了很久,基本没有,后来研究了下,也参考了下api文档,总结了以下几个方式:
1. 获取Bitmap:
1)在图片下载缓存好之后获取
- Glide.with(mContext).load(url).asBitmap().into(new SimpleTarget<Bitmap>() {
- @Override
- public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
- image.setImageBitmap(resource);
- }
- });
上面是简单方法,下面有全面的方法,可以完美控制:
- Glide.with(mContext).load(url).asBitmap().into(new Target<Bitmap>() {
- @Override
- public void onLoadStarted(Drawable placeholder) {
-
- }
-
- @Override
- public void onLoadFailed(Exception e, Drawable errorDrawable) {
-
- }
-
- @Override
- public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
-
- }
-
- @Override
- public void onLoadCleared(Drawable placeholder) {
-
- }
-
- @Override
- public void getSize(SizeReadyCallback cb) {
-
- }
-
- @Override
- public void setRequest(Request request) {
-
- }
-
- @Override
- public Request getRequest() {
- return null;
- }
-
- @Override
- public void onStart() {
-
- }
-
- @Override
- public void onStop() {
-
- }
-
- @Override
- public void onDestroy() {
-
- }
- });
2)通过url获取
- Bitmap myBitmap = Glide.with(applicationContext)
- .load(yourUrl)
- .asBitmap()
- .centerCrop()
- .into(500, 500)
- .get()
2. 获取图片缓存路径
- FutureTarget<File> future = Glide.with(mContext)
- .load("url")
- .downloadOnly(500, 500);
- try {
- File cacheFile = future.get();
- String path = cacheFile.getAbsolutePath();
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
- e.printStackTrace();
- }
注意:这段代码需要在线程中执行,否则会保存。
来自:http://blog.csdn.NET/qq_19711823/article/details/50856236