前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【译】加载进阶

【译】加载进阶

作者头像
小鄧子
发布2018-08-20 15:18:40
2790
发布2018-08-20 15:18:40
举报
文章被收录于专栏:小鄧子的技术博客专栏

从Resources中加载

首先,从Android的资源文件中加载。你需要提供一个int类型的资源ID,而不是一个String类型的字符串指向网络URL。

代码语言:javascript
复制
int resourceId = R.mipmap.ic_launcher;

Picasso
    .with(context)
    .load(resourceId)
    .into(imageViewResource);

不必对R.mipmap的感到困惑,它只不过是处理Android图标的新方案

从File中加载

第二就是从文件中加载。这对于允许用户通过照片选择来显示图像来说是非常重要的(类似于Gallery)。传入的参数仅仅是一个File对象。示例如下:

代码语言:javascript
复制
// this file probably does not exist on your device. However, you can use any file path, which points to an image file

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Running.jpg");

Picasso
    .with(context)
    .load(file)
    .into(imageViewFile);

从Uri地址加载

最后,你也可以通过一个可用的Uri来加载图像。这与之前的加载方式没有什么不同。

代码语言:javascript
复制
// this could be any Uri. for demonstration purposes we're just creating an Uri pointing to a launcher icon

Uri uri = resourceIdToUri(context, R.mipmap.future_studio_launcher);

Picasso
    .with(context)
    .load(uri)
    .into(imageViewUri);

resourceIdToUri()只是一个将resourceId转换成Uri的简单函数。

代码语言:javascript
复制
public static final String ANDROID_RESOURCE = "android.resource://";
public static final String FOREWARD_SLASH = "/";

private static Uri resourceIdToUri(Context context, int resourceId) {
    return Uri.parse(ANDROID_RESOURCE + context.getPackageName() + FOREWARD_SLASH + resourceId);
}

然而,值得一提的是,这个Uri,不一定非要通过resourceId来生成,它可以是任意的Uri

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.06.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从Resources中加载
  • 从File中加载
  • 从Uri地址加载
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档