标签: picasso

使用Picasso将图像调整为全宽和可变高度

我有一个listView与适配器,包含ImageView可变大小(宽度和高度).我需要将Picasso的图片大小调整为布局的最大宽度,并根据图片的宽高比给出可变高度.

我已经检查了这个问题: 用Picasso将图像调整到全宽和固定高度

fit()作品,但我还没有发现什么,以保持画面的纵横比.

如果我修改适配器布局中的高度,此代码部分工作:

Picasso.with(this.context).load(message_pic_url)
.placeholder(R.drawable.profile_wall_picture)
.fit().centerInside()
.into(holder.message_picture);
Run Code Online (Sandbox Code Playgroud)

但它会在listView的图片之间生成空格,因为图片可能没有那个高度.

提前致谢.

android picasso

78
推荐指数
5
解决办法
8万
查看次数

Picasso中的缓存无效

我使用Picasso从磁盘加载图像,例如,Picasso.with(ctx).load(new File("/path/to/image")).into(imageView)但每当我在该文件中保存新图像并刷新我的时候ImageView,Picasso仍然会缓存位图.

是否有可能使Picasso中的缓存无效?

android caching image-loading picasso

74
推荐指数
9
解决办法
6万
查看次数

毕加索从文件系统加载图像

我可以使用Picasso库从文件系统加载图像吗?

startActivityForResult用来让用户从他的图库中选择一张照片,然后想要显示所选图像.

我已经有了工作代码来获取图像文件系统Uri,但无法使该Picasso.load()方法工作.

android picasso

73
推荐指数
5
解决办法
8万
查看次数

场景转换动画的JNI错误 - 图层超出最大值

请注意问题底部的编辑

我有2个活动:ActivityA,ActivityB与相关frgments: FragmentA,FragmentB 分别.ImageView v在这两个片段之间共享.

一些代码:ActivityA

Intent intent = new Intent(this, ActivityB.class);
final ActivityOptionsCompat activityOptionsCompat = ActivityOptionsCompat.
                         makeSceneTransitionAnimation(this, imageView, "photo");   

ActivityCompat.startActivity(this, intent, activityOptionsCompat.toBundle());
Run Code Online (Sandbox Code Playgroud)

ActivityB

FragmentB fragment = new FragmentB();
getFragmentManager().beginTransaction()..replace(R.id.fragment_container, fragment, TAG).addToBackStack(TAG).commit();
Run Code Online (Sandbox Code Playgroud)

FragmentB

mView = (ImageView) view.findViewById(R.id.view);
ViewCompat.setTransitionName(mView, "photo);
Run Code Online (Sandbox Code Playgroud)

5次中有4次正在工作.但是当它不起作用时,我得到了非常有用的错误:

W/OpenGLRenderer? Layer exceeds max. dimensions supported by the GPU (1080x10659, max=4096x4096)
JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception 'java.lang.IllegalStateException' thrown in void android.os.MessageQueue.nativePollOnce(long, int):-2
Run Code Online (Sandbox Code Playgroud)

拨电至 …

android android-animation picasso

54
推荐指数
1
解决办法
2301
查看次数

Recyclerview痛苦地缓慢加载毕加索的缓存图像

我已经实现了一个RecyclerView,主要包含通过Picasso加载的图像.我的问题是,只要我向下或向上滚动视图,占位符图像就会显示约.在它被实际图像替换之前的一秒钟.它滚动非常顺利,但几乎无法使用.每次滚动屏幕时都会发生这种情况.

Picasso显然将图像缓存到磁盘,因为它们的加载速度比初始加载时间快,但它们肯定会立即从缓存中重新加载.我做错了什么?

我的适配器代码:

public class ExploreAdapter extends RecyclerView.Adapter<ExploreAdapter.ExploreViewHolder> {

    private List<ExploreItem> exploreItemList;
    private Context mContext;
    private int deviceWidth = PrefUtils.getDeviceWidth();

    public ExploreAdapter(Context context, List<ExploreItem> exploreItemList){
        this.mContext = context;
        this.exploreItemList = exploreItemList;
    }

    @Override
    public int getItemCount(){
        return exploreItemList.size();
    }

    @Override
    public void onBindViewHolder(ExploreViewHolder exploreViewHolder, int i){
        ExploreItem item = exploreItemList.get(i);
        exploreViewHolder.getvTitle().setText(item.getTitle());
        exploreViewHolder.getvUsername().setText(item.getUsername());
        exploreViewHolder.getvNumLikes().setText(item.getNbOfLikes());

        Picasso.with(mContext).load(item.getMediaLocation().trim())
                .resize(deviceWidth, deviceWidth)
                .centerCrop()
                .placeholder(R.drawable.profile_background)
                .into(exploreViewHolder.getvImage());

        Picasso.with(mContext).load(item.getUserProfilePicUrl().trim())
                .placeholder(R.drawable.profile_picture)
                .into(exploreViewHolder.getvProfilePic());
    }

    @Override
    public ExploreViewHolder onCreateViewHolder(ViewGroup viewGroup, int i){
        View itemView = LayoutInflater.
                from(viewGroup.getContext()).
                inflate(R.layout.explore_item, viewGroup, false);

        return new …
Run Code Online (Sandbox Code Playgroud)

java android picasso android-5.0-lollipop android-recyclerview

50
推荐指数
4
解决办法
4万
查看次数

Android:Picasso加载图片失败.如何显示错误消息

我正在尝试使用picasso库在mediastore中加载图像存储.当我调用load(imageview,callback)时,毕加索调用onFail而不是onSuccess.我如何知道图像未成功加载的原因?

android image mediastore picasso

46
推荐指数
3
解决办法
4万
查看次数

为什么使用Android Picasso库下载图像?

为什么我应该通过Picasso库下载图像而不是仅使用此代码:

private Bitmap DownloadImage(String URL) 
{
    Bitmap bitmap = null; 
    InputStream in = null; 

    try 
    {
        in = OpenHttpGETConnection(URL);
        bitmap = BitmapFactory.decodeStream(in); in.close();
    } 
    catch (Exception e) 
    {
        Log.d("DownloadImage", e.getLocalizedMessage());
    }

    return bitmap; 
}
Run Code Online (Sandbox Code Playgroud)

另一个问题:

毕加索是在UI中还是通过后台线程下载图像?

android image picasso

43
推荐指数
4
解决办法
6万
查看次数

毕加索图像加载回调

我想用Picasso在列表视图中一个一个地加载三个连续的图像.使用Picasso提供的方法可以轻松实现.然而,因为这些图像在不同时间加载,所以当图像进入时会引起闪烁效果.例如,有时图像2出现在图像1之前,并且当图像1加载时,它会导致不自然的口吃.如果我可以将listview的可见性设置为不可见,直到可以显示所有图像,那会更好.但是,我没有找到Picasso的回调方法,它会在图像加载时发出信号.

有没有人知道使用Picasso这种情况的解决方案?

谢谢

java android picasso

42
推荐指数
3
解决办法
3万
查看次数

使用Picasso和Glide获取黑色ImageView

问题

我正在编写一个Android应用程序,它应该有一个"幻灯片"功能.我发现这个漂亮的图书馆,基于毕加索,完全符合我的要求,而且大多数时候它都运行得很好.

问题是,有时我的图像没有加载到幻灯片中ImageView...它只显示一个"黑色画布",你可以在下面的截图中看到.

在此输入图像描述

我从我的drawables加载本地资源的图像.有时它会在纵向模式下发生,有时在横向模式下发生.我使用哪个图像并不重要,有时会发生"黑度".

编辑:

  • 我正在使用Android 5.0.2和4.4.2 - 它似乎不会发生在4.4.2上.仅在5.0.2.

  • 它发生在带有Android 5.1的Moto X 2014上.

  • 我试图加载的图像在磁盘上有45KB,分辨率为900x445.

  • 我按照建议打开了布局,这些是结果:

单张幻灯片

它在滚动上保持这样.

在此输入图像描述

有时,它会变成白色而不是黑色(或白色,然后是黑色).

在此输入图像描述

我试过的其他东西:res/drawable当我将文件从该文件夹更改res/drawable-xxxhdpi为5.0.2设备上的滑块时,我的drawables位于文件夹中.跆拳道???

到目前为止我做了什么

我尝试了不同的图像,在幻灯片上加载多个图像,甚至这个拉取请求将Picasso更改为在lib上滑动.似乎没有任何作用,错误似乎是随机的.

一旦我尝试使用来自网络的URL而不是本地存储上的实际drawable,它就可以工作了.与完全相同的图像.

这是我加载图像的方式:

Fragment.java

private SliderLayout slider;
private PagerIndicator indicator;

// ...

private void setupSlider() {

    HashMap<String,Integer> file_maps = new HashMap<>();

    file_maps.put("Blah",R.drawable.banner_1);
    file_maps.put("Bleh",R.drawable.banner_2);
    file_maps.put("Blih",R.drawable.banner_3);
    file_maps.put("Bloh",R.drawable.banner_4);

    for (String name : file_maps.keySet()) {

        DefaultSliderView dsv = new DefaultSliderView(getActivity());

        dsv.description(name)
                .image(file_maps.get(name))
                .error(R.drawable.banner_error)
                .empty(R.drawable.empty)
                .setScaleType(BaseSliderView.ScaleType.Fit)
                .setOnSliderClickListener(this);

        //add your extra information
        dsv.bundle(new Bundle());
        dsv.getBundle()
                .putString("extra",name); …
Run Code Online (Sandbox Code Playgroud)

android imageview android-drawable picasso android-glide

42
推荐指数
1
解决办法
2877
查看次数

使用picasso库android找不到带符号的符号方法

我在Android应用程序中遇到一个问题,我正在尝试检查已经存在的应用程序,该应用程序包含

 implementation('com.squareup.picasso:picasso:3.0.0-SNAPSHOT') {
        exclude group: 'com.android.support'
    }
Run Code Online (Sandbox Code Playgroud)

毕加索图书馆和

在类中使用该库,这是代码

import com.squareup.picasso.Picasso;

    Picasso.with().load(url).placeholder(R.drawable.default_pic).into(imageView);
Run Code Online (Sandbox Code Playgroud)

这是错误, Error:(49, 20) error: cannot find symbol method with()

而我的android studio版本是3.0 RC1,这是一个问题吗?

android image picasso

42
推荐指数
5
解决办法
4万
查看次数