Articles of picasso

如何使用Picasso将位图加载到图像视图中

是的,我正在使用Picasso来加载位图。 原因是我在我的适配器的一部分解码URI,并在另一部分加载位图,我在这里读到 即使您的URL为空,也应始终致电Picasso。 这样它就知道图像视图被回收了。 所以我试过这个…. Bitmap bitMap; … Picasso.with(getContext()) .load(bitMap) .into(imageView); 但我得到了这个错误 无法解析方法’load(android.graphics.Bitmap)’

RecyclerView与GridLayoutManager和Picasso显示错误的图像

更新#1 添加了hasStableIds(true)并将Picasso更新到版本2.5.2。 它没有解决问题。 再生产: RecyclerView with GridLayoutManager(spanCount = 3)。 列表项是带有ImageView的CardViews。 当所有项目都不适合时,在一个项目上调用notifyItemChanged的屏幕会导致对onBindViewHolder()的多次调用。 一个调用是来自notifyItemChanged其他人的位置,用于屏幕上不可见的项目。 问题: 有时传递给notifyItemChanged的位置的项目加载了属于不在屏幕上的项目的图像(很可能是由于视图持有者的回收 – 虽然我会假设如果项目保持在原位,那么传递的视图持有者会是一样的)。 我发现Jake在这里关于调用load()的其他问题的评论,即使文件/ uri为null。 图像加载到每个onBindViewHolder上。 简单示例应用: git clone https://github.com/gswierczynski/recycler-view-grid-layout-with-picasso.git 点击一个项目调用notifyItemChanged,其参数等于该项目的位置。 码: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } } public static class PlaceholderFragment […]

UIL,Picasso – 适配器中的图像在停止滚动时始终重新加载

我有ListView文本和来自互联网的大图像。 我的图片项具有适合宽度和wrap_content高度。 我试图用UIL和Picasso在背景中显示图像。 它们都可以工作但是当我停止滚动时图像总是重新加载,它使ListView闪烁 它看起来像这样: 当我停止滚动时(我向下滚动然后向上滚动) ,您可以看到它重新加载下载和缓存的图像 。 我怎样才能防止这种情况发生? // UIL options = new DisplayImageOptions.Builder() .showImageOnLoading(defaultImage) .showImageOnFail(defaultImage) .showImageForEmptyUri(defaultImage) .resetViewBeforeLoading(false) .cacheOnDisk(true).delayBeforeLoading(0) .displayer(new FadeInBitmapDisplayer(200)).cacheInMemory(true).imageScaleType(ImageScaleType.EXACTLY_STRETCHED).build(); ImageAware imageAware = new ImageViewAware(viewHolder.imgFeed, false); ImageLoader.getInstance().displayImage(item.getPhotoUrl(), imageAware, options); // Picasso Picasso.with(getContext()) .load(item.getPhotoUrl()) .placeholder(R.drawable.place_holder_big) .resize(screenWidth, 0) //set max width .into(viewHolder.imgFeed); 对于UIL,我在这个问题上尝试了很多方法,但它们根本不适用于我。 更新 :似乎我遇到了像这个问题的内存缓存问题 。 但是我该如何解决这个问题呢? 看看Facebook应用程序,他们做得非常好。 所有图像都具有不同的尺寸和适合的宽度,并且非常平滑的滚动而无需重新加载图像。 他们怎么能这样做?

毕加索在调整图像大小时不会保留纵横比

我想保留imageView的宽高比,并调整它以尽可能大地填充/调整,而不会使用Picasso扭曲/改变它的宽高比。 到目前为止,我发现了这个: 在毕加索缩放图像大小 建议使用: .fit().centerInside() 但是,当我尝试它时: Picasso.with(this).load(boxart) .fit().centerInside() .into(imageItem); 和我的XML一起: 然而,图像仍然显得扭曲(它看起来太长而且很瘦 – 它的原始宽高比是扭曲的)我不确定为什么。

如何使用Picasso加载布局背景

任何人都可以指出我如何用Picasso以编程方式改变XML布局的背景? 我发现的所有示例都能够使用Picasso更新ImageView,但不能更新布局背景。 无法使用Picasso从URL设置LinearLayout BackgroundResource

毕加索可以为我排队吗?

这是关于毕加索行为的一个关键点我不知道。 想象一下,你正在展示十件物品的幻灯片。 比如,他们在屏幕上各持有十秒钟。 理想的行为是这样的:在幻灯片放映开始时,我只是执行以下操作: picasso.get( url1 ) picasso.get( url2 ) picasso.get( url3 ) picasso.get( url4 ) picasso.get( url5 ) picasso.get( url6 ) picasso.get( url7 ) picasso.get( url8 ) picasso.get( url9 ) picasso.get( url10 ) 事实上,毕加索会一次一个地排队 。 毕加索的行为是什么,如果我告诉它一次预热10个url? 是否有可能让毕加索一次只做一件事 – 按顺序 – 是否有这样的选择? (产生的其他问题是,你可以取消队列,还是……?) 壁画 感谢@alicanozkara在这个页面上的惊人答案我第一次了解到 https://github.com/facebook/fresco (13k星)无论好坏,我认为毕加索时代可能已经结束了。

Picasso无法在StorageReference的onSuccess方法中加载图像

在运行时onStart()方法上尝试Picasso时,它通常使用控制台的下载链接从Firebase加载图像。 但是当我尝试在StorageReference onSuccess方法中加载图像时,它就无法工作了。 这个类正在扩展片段: @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == GALLERY_IN && resultCode == Activity.RESULT_OK) { isGranted = true; String path = FireStorage.retUID() + “/”; showIndProgress(); Uri uri = data.getData(); StorageReference childPathRef = FireStorage.storageRef.child(path + uri.getLastPathSegment()); childPathRef.putFile(uri) .addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task […]

毕加索:将图片加载到widget listview

我正在使用基于本教程的listview实现小部件: http : //laaptu.wordpress.com/2013/07/24/populate-appwidget-listview-with-remote-datadata-from-web/ (源代码: https: //github.com/laaptu/appwidget-listview/tree/appwidget-listview2/ )。 ListView项目包含文本和图像,对于图像加载我使用Picasso。 getViewAt实现: public RemoteViews getViewAt(int position) { final RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.listview_item); ListItem listItem = listItemList.get(position); remoteView.setTextViewText(R.id.headline, listItem.headline); final String imageUrl = listItem.image; handler.post(new Runnable() { @Override public void run() { if (!Utils.isEmpty(imageUrl)) { picasso.load(imageUrl) .placeholder(R.drawable.empty_photo) .into(remoteView, R.id.picture, new int[] { appWidgetId }); } } […]

Picasso + convertView:我在这里做错了什么?

这是我的getView() 。 我显然在这里做错了,因为我列表中的第一项始终没有显示图片。 这里的问题是the convertview因为如果我不回收它,没有问题。 请问我做错了什么? @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null) //IF I DELETE THIS IF EVERYTHING OK!!! convertView = inflater.inflate(R.layout.square, null); ImageView image = (ImageView) convertView.findViewById(R.id.background_image); if (data.get(position).isFollowed()) { int approprieteimage = getApproppreiateImage(data.get(position)); Picasso.with(context).load(approprieteimage).centerCrop().error(R.drawable.no_image_available).transform(new TealTransformation(context)).fit().into(image); } else { int approprieteimage = getApproppreiateImage(data.get(position)); Picasso.with(context).load(approprieteimage).centerCrop().error(R.drawable.no_image_available).fit().into(image); } AbsListView.LayoutParams layoutParams = new […]

Picasso java.lang.IllegalStateException:方法调用不应该从主线程发生

我试图使用Picasso从URL获取三个Bitmap图像 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab2); Drawable d1 = new BitmapDrawable(Picasso.with(Tab2.this).load(zestimateImg1).get()); } 我正在使用此代码获得FATAL EXCEPTION 。 我怀疑它与AsyncTask应该完成的事实有关,但是我无法让它工作。 如果使用这是可以避免的,我想在不使用AsyncTask情况下这样做。 如何在不崩溃的情况下运行此代码? 如果最好的方法是使用AsyncTask ,那么该解决方案就可以了。