问题标签 [picasso]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1776 浏览

android - 应用了不同变换的毕加索缓存

我正在使用 picasso 从 amazon s3 下载一些图像,并在 android 应用程序的不同区域应用变换。使用调试我注意到,对于每个具有不同转换或图像视图大小的调用,毕加索将再次下载它并将转换后的图像缓存在内存中。是否有正确的方法让毕加索将原始图像存储在缓存中,然后应用转换而无需重新下载?网络带宽是我的用户案例的一个问题。

0 投票
2 回答
1911 浏览

android - Android 内存管理:屏幕密度、请求的图像大小和可用堆

猜猜看,另一个 Android-Bitmap-OOM 问题!

背景

在对我们的应用程序进行压力测试时,我们注意到,在持续、大量使用(类似猴子跑步者)之后,可以最大限度地利用应用程序的进程内存分配,OutOfMemory并在随后的堆栈跟踪中记录异常。The app downloads images (around 3 at a time) when a page under a ViewPageris selected. 当应用程序的长度和呼吸被锻炼时,可以有 280+ 图像可供下载。该应用程序使用Square 的 Picasso 进行图像下载抽象。值得注意的是,在我们的应用程序代码中,我们没有直接操作位图……我们相信非常有才华的 Square Inc. 员工比我们做得更好。

这是一张图片

下图显示了dalvikvm-heap日志消息下记录的堆分配随时间的变化。红点表示用户将一组新文章带入应用程序,以增加未完成的工作量并给应用程序带来压力……

DALVIKVM 堆分配 http://snag.gy/FgsiN.jpg 图 1: Nexus One 堆分配;OOM 发生在 80MB 以上

调查至今

针对 Nexus S、Nexus 4、Wildfire、HTC Incredible 和无数其他测试设备,轶事测试表明内存管理足以让 DVM GC“跟上”应用程序完成的繁重工作。然而,在 Galaxy S II、III、IV 和 HTC One 等高端设备上,OOM 很普遍。事实上,如果有足够的工作要做,我想我们所有的设备最终都会出现故障。

问题

屏幕密度(我们请求的图像大小基于 ImageView 的大小)、进程内存分配和给定大小的图像数量之间显然存在关系,这将导致应用程序超出其堆限制。我即将着手量化这种关系,但希望 SO 社区将目光投向这个问题,并且 (a) 同意或不同意这种关系值得建立,并且 (b) 提供说明如何最好地制定这种关系的文献。

重要的是要注意,如果我们破坏图像质量,我们的 OOM 都会消失,但是 UX 会更差,这就是为什么我们希望最有效地使用可用堆进行切块。


旁注:这是负责将这些图像加载到已布局的视图中的代码部分;

上面提到的“图像质量的冲刺”只是将imageView.getMeasured...4 除以一个数字。

0 投票
5 回答
74487 浏览

android - Android本地图片缓存解决方案:Square Picasso、Universal Image Loader、Glide、Fresco?

我正在寻找 Android 中的异步图像加载和缓存库。我打算使用 Picasso,但我发现 Universal Image Loader 在 GitHub 上更受欢迎。有人知道这两个库吗?一个优点和缺点的总结会很棒。

(我所有的图像都在本地磁盘上,所以我不需要网络,因此我认为 Volley 不适合)

0 投票
2 回答
9741 浏览

android - Android Picasso:不加载片段

我正在尝试使用 Picasso 进行一些更简单的图像内存管理。我一直试图在我的片段中实现它,但我似乎无法让它工作。

其中 mainLayout 是一个线性布局。我也试过这个:

我试过 Picasso.with(this)... 但这根本不起作用。

我不断收到以下异常:

我叫它的地方。

任何人都经历过这个或知道如何正确使用片段?

0 投票
1 回答
2323 浏览

android - 带有毕加索和支持库的android 2.2中的ImageView旋转并且不起作用

我需要在纵向活动中显示旋转 90 度的 ImageView,因为我使用 picasso 库进行缓存我无法自由访问位图对象,并且使用 Support 库进行旋转我没有得到我应该得到的结果,

代码“只是”如下:

有什么办法可以达到相同的结果吗?

在 android 4.0 或更高版本中旋转有效。

0 投票
0 回答
250 浏览

java - 使用方形 Picsso android 库从自定义资源加载图像

我对 Picasso android library 感到非常兴奋。我有一个我想使用 picasso 的 android 应用程序,但我的应用程序内部的某个地方有一个问题

我有一个列表视图(无止境),在每个项目旁边显示一些文本的图像,现在我没有列表中每个项目的 Url(我使用的是愚蠢的 api),我必须使用特定的 id 访问服务器,然后服务器向我发送了我可以在 Picasso 中使用的图像 url。

例子 :

响应看起来像

我无法预加载图片网址。因为我有一个无穷无尽的列表,对于每个项目我都需要调用网络服务来获取它的图像 url。

毕加索能应付吗?

0 投票
2 回答
24185 浏览

android - Android Picasso 配置 LruCache 大小

我在我的项目中使用了流行的毕加索,但我已经倾倒了堆,它看起来像这样。现在昨天它给了我 48MLruCache用于毕加索。

我怎么能指定它的大小?

注意:我加载的图像显然很大。

如果有人提出fit()or centerCrop(),我已经读到这些功能会减小图像大小,对吗?但有时我必须ListView在全视图中显示小图像。

现在,这些函数会缓存缩小的图像吗?

在此处输入图像描述

0 投票
4 回答
103916 浏览

android - 使用 Picasso 获取带有位图的回调

我正在使用毕加索为我的应用下载图像。

我的情况是,我需要先访问第Bitmap一个,然后才能将其加载到ImageView. 该Downloader.Response课程的存在似乎表明这是可能的,但我找不到任何使用示例。如果可以使用毕加索,我不想编写更多代码来异步处理这个特殊情况。

谁能告诉我怎么做?

0 投票
2 回答
7545 浏览

android - Picasso on Adapter 中目标的使用

我在适配器内使用目标时遇到了很大的麻烦。我对代码上的文档感到困惑

实现此类的对象必须具有 {@link #equals(Object)} 和 {@link #hashCode()} 的有效实现,以便在内部正确存储。还将比较此接口的实例以确定是否正在发生视图回收。建议您在适配器中使用时直接将此接口添加到自定义视图类型,以确保正确的回收行为。

我试图以这种方式使用目标:

它不起作用,图像之间随机变化

0 投票
1 回答
3008 浏览

java - 动态创建图像视图

我似乎无法让这些图像视图正常工作。我不想动态创建一些图像视图,但我希望它们有一个来自 xml 的模板左右。

我的循环如下所示:

我正在创建一些图像并在其中放置一些临时图像,但似乎根本无法更改图像大小。

这是我的xml:

采纳以下答案的建议,我添加了他所说的内容,但现在无法更改比例类型。

但是图像仍然是容器的高度而不是拉伸。