java - 如何从 Picasso 的 URL 接收图标并在第一次访问而不是重新运行应用程序时显示它?
问题描述
通过使用 stackoverflow 中的信息,我终于可以编写一个从 URL 接收图像并使用 Picasso 将其设置为导航抽屉中的汉堡菜单图标的代码。它工作得很好。但是还是有一个问题:(第一次安装应用程序并运行它时)或(关闭手机然后重新运行应用程序时)图标不显示。重新运行应用程序时(在关闭手机之前),应用程序运行正常并显示图标。我该如何解决这个问题?
{
final Target mTarget = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap,Picasso.LoadedFrom loadedFrom) {
Log.d("DEBUG", "onBitmapLoaded");
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, false);
mBitmapDrawable = new BitmapDrawable(getResources(), scaledBitmap);
getSupportActionBar().setHomeAsUpIndicator(mBitmapDrawable);
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable drawable) {
Log.d("DEBUG", "onPrepareLoad");
}
};
Picasso.get().load("http://192.168.1.53:8080/Farid/1.jpg").into(mTarget);
}
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
解决方案
您可以为图标创建本地缓存,下载图标后可以将其转换为浮动并存储在sharePreference中,当图标无法加载时,您可以将缓存的图标从float转换为sharePreference中的位图。该线程可能会帮助您将位图存储到 SharePreference
推荐阅读
- python - 在另一个脚本中使用 argparse 运行 python 脚本
- swift - 基于 JSExport 的类未在 JSContext 中发布
- android - Android 的 Firebase Firestore 和 Places Api 之间的冲突
- c# - TFS 构建代理上出现错误 CS0579,但在本地运行构建时成功
- jsf - 通过对每一行的删除按钮删除 P:DATATABLE 行
- python - 减去数据框中的两个值
- wordpress - 多种帖子类型,但仅为一种设置偏移量
- sql-server - 使用警卫停止递归 CTE
- sql - JPA - 在没有 IN 参数的情况下调用 Oracle 函数
- excel - 从文件夹中获取文件名从第二个文件开始,而不是从第一个文件开始