Articles of picasso

如何在使用Picasso时访问Drawable?

我正在使用Picasso框架来处理我的Android应用中的图像加载。 加载图像后,我需要访问Drawable以应用一些屏蔽操作。 问题在于Picasso将Drawable转换为PicassoDrawable,而简单的转换为Drawable则不起作用。 这是我的代码: Picasso.with(mContext).load(image.getPath()).into(mImageView, new Callback() { @Override public void onSuccess() { Util.applyMask(imageView); } @Override public void onError() { } }); 和Util.applyMask(ImageView)方法: public static void applyMask(ImageView imageView) { // this is where a class cast exception happens since it’s actually a PicassoDrawable and not a Drawable Bitmap mainImage = ((BitmapDrawable) imageView.getDrawable()).getBitmap(); // … } […]

从毕加索获得图像uri?

我有一个相当大的图像URL列表,我用它来加载使用Picasso的ViewPager 。 我需要能够通过意图(最终通过ShareActionProvider共享)为这些图像提供共享function。 从我所读到的,毕加索并不是真正能够开箱即用来处理这类事情,尽管它提供了所有必要的工具。 我在研究之前的计划是创建一个简单的LruCache ,它使用url作为键和位图值。 这个缓存将通过Picasso的Target界面在onBitmapLoaded进行。 每当我想要共享图像时,我都会检查位图的缓存。 如果它不在那里,我将与毕加索一起取。 既然我有一个缓存的位图,我会写一个文件(…这部分似乎不对,虽然我必须写一个文件来获取一个uri,对吗?)并添加文件uri到意图。 但是我看到使用Picasso.Builder我可以设置(并保留对我自己的缓存的引用) – https://stackoverflow.com/a/18552559/413254 。 这意味着我可以通过正确实现hashCode和equals方法来消除自定义Target和混淆,以确保准确的回收,检索等。 我的问题是,毕加索如何使用这个缓存? 有什么关键? 有没有办法获得位图Uri而不将其写入磁盘?

毕加索没有加载图像

这是毕加索的代码: ImageView img = (ImageView)findViewById(R.id.product_image); Picasso.with(this) .load(_url) .fit() .into(img, new Callback() { @Override public void onSuccess() { } @Override public void onError() { } }); 这是_url的价值: http : //kiagallery.ir/Images/Upload/Collection%20101/Spring%20101/d4a03b66dc7b46c694615c549b78b2e9.jpg 这是xml: 正如你可以看到图像可以通过浏览器访问,但毕加索无法加载它,我已经检查了onError函数,它从未被调用,我很安静地丢失在这里,任何帮助将不胜感激。 编辑:当我提供imageview的宽度和高度固定值,如200dp,它加载图像,但当我将其更改为wrap_content时,它不显示图像。

Image uri不会在某些Android设备上的ImageView上显示图像

我有一个ImageView。 当您单击ImageView时,它将打开图库,您将获取图像并在ImageView上显示它。 我有一个条件,当我关闭我的应用程序,然后我打开它,图像将保留在那里。 所以,为此,我将图像Uri存储在sharedprefrence上。 在打开应用程序时,我正在检索相同的Uri并尝试在imageView上显示图像。 然而在某些手机中 – 图像看起来像Mi(棒棒糖),三星(KitKat),但它不会出现在像摩托罗拉(Marshmallow),One Plus One(Marshmallow)这样的手机中。 知道为什么会这样吗? 这是我的代码 拿起我正在使用的图像 Intent intent=new Intent();intent.setType(“image/*”); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, “Select Picture”), Constants.SELECT_PICTURE); 在OnActivityResult()代码上 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==Constants.SELECT_PICTURE && resultCode==RESULT_OK && null!=data) { Uri uri=data.getData(); Picasso.with(UsersProfileActivity.this) .load(uri) .centerCrop() .resize(200,200) .into(img_photo); // This profile image i am storing […]

RecyclerView滞后滚动

我在RecyclerView中加载400×200图像,但在2k设备上滚动是滞后的。 我正在使用Picasso从资源加载图像。 正如您在演示图像中看到的那样,在2k屏幕上模糊,但如果我加载更高分辨率的图像,情况会变得更糟。 如何解决这个问题,我甚至没有加载大图像,它的400×200? 演示 这是我的代码card_view.xml Myadapter代码 public class CardAdapter extends RecyclerView.Adapter { private Context mContext; List list = new ArrayList(); public CardAdapter(Context mContext, List list) { this.mContext = mContext; this.list = list; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.card_view, parent, false); return new ViewHolder(itemView); } @Override public […]

让毕加索预先获取即将到来的图像

我正在使用带有GridView的Picasso,通过网络加载200张图像。 现在,看起来Picasso没有触发网络上的图像加载,直到图像开始在屏幕上显示。 有没有办法让毕加索预先获取列表中的下N个图像,以便体验更好? 我正在使用适配器将图像放入Gridview。

毕加索将图片加载到列表适配器中的错误图像视图中

我正在使用picasso将服务器中的图像加载到列表视图项: public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View participantView; if(convertView == null) { participantView = inflater.inflate(R.layout.participant_item, parent, false); } else { participantView = convertView; } TextView textView = (TextView) participantView.findViewById(R.id.participantName); textView.setText(getItem(position).getName()); ImageView imageView = (ImageView) participantView.findViewById(R.id.participantImage); String profilePic = getItem(position).getProfilePic(); if(!profilePic.equals(“None”)) { Log.d(“tom.debug”, “creating picture for […]

Android Picasso自动旋转图像

我正在使用Picasso在我的应用程序中从Web加载图像。 我注意到有些图像显示旋转了90度,但是当我在浏览器中打开图像时,我看到它正确定位。 我假设这些图像有EXIF数据。 有没有办法指示毕加索忽略EXIF?

使用带有圆形图像视图的毕加索库

我正在寻找使用Picasso库从URL下载图像并将其传递到圆形图像视图,但由于毕加索要求您传入一个实际的imageView我已经停止了如何做到这一点 我在这里使用picasso库http://square.github.io/picasso/和这里的圆形图像视图类https://github.com/hdodenhof/CircleImageView 这是获取图像的代码的开始 private void getData() { userName.setText(prefs.getString(“userName”,””)); jobTitle.setText(prefs.getString(“profile”,””)); userLocation.setText(prefs.getString(“location”,””)); // ?????? // Picasso.with(context).load(image link here).into(imageview here); //CircleImageView img = new CircleImageView(this); //img.setImageResource(); //img.setImageBitmap(); //img.setImageDrawable(); //img.setImageURI(); } 编辑: 这是circleImageView的xml <michael.CircleImageView android:layout_width="100dp" android:layout_height="100dp" android:src="@drawable/shadow" android:layout_gravity="center" android:layout_marginTop="16dp" app:border_width="2dp" app:border_color="#274978" android:id="@+id/circleImageView"

ImageView中透明的图像部分变为黑色

在Android KitKat(Nexus 7)中显示透明图像时出现问题,在nexus 4(KitKat)和其他以前的Android操作系统中都可以,这里的图像: 和ImageView布局: 这里是在Nexus 7(Android 4.4)上运行时的屏幕截图 另外,我使用Picasso从URL下载和缓存图像。