我正在使用毕加索库下载并将图像加载到imageView中.现在我想知道在将它们加载到imageViews之前我如何获得图像的宽度和高度?
我有一个包含两个imageView的适配器的列表视图(其中一个是垂直的,另一个是水平的).取决于图像宽度和高度我想将图像加载到其中一个图像视图中.
我正在使用带有GridView的Picasso,通过网络加载200张图像.现在,看起来Picasso没有触发网络上的图像加载,直到图像开始在屏幕上显示.
有没有办法让Picasso预先获取列表中的下N个图像,以便体验更好?我正在使用适配器将图像放入Gridview.
我试图在自定义ListView中显示我的新闻.每个新闻都包括一些图像,我想
1. 从服务器下载图像
2.在本地存储中保存
3.save 路径的图像成的SQLite
4. 使用我的自定义适配器在ListView中显示图像.
我刚刚遇到第1步和第2步的问题.我可以从服务器获取新闻并在我的ListView中显示它们
并通过在我的适配器中添加以下代码来显示缓存中的图像:
Picasso.with(context).load(image[position]).into(iv);
Run Code Online (Sandbox Code Playgroud)
通过使用Picasso.with(context).load(image[position]).into(target),我可以保存一个
存储中的图像.
请建议我你的想法......
更新:当我使用下面的代码时,只保存一个图像(我的图像数组的最后一个索引)!
如何使用此代码保存数组中的所有图像?!
@Override
protected void onPostExecute(Void result) {
SaveImages();
pDialog.dismiss();
super.onPostExecute(result);
}
String fileName = null;
public void SaveImages() {
for(int i = 0; i < image.length; i++) {
Picasso.with(this).load(image[i]).into(target);
fileName = "image-" + i + ".jpg"; …Run Code Online (Sandbox Code Playgroud) Picasso.with(context).load("url").into(imageView);
Run Code Online (Sandbox Code Playgroud)
这里代替网址,我想要位图,我怎么能实现这一点.如下 -
Picasso.with(context).load(bitmap).into(imageView);
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用Picasso有效地加载图像并且正在最好地完成他的工作.问题是,目前如果我Picasso.with()使用相同的URL多次调用 ,但是每次使用具有不同尺寸的图像视图时,图像获得下载again.In Glide我们的方法 .diskCacheStrategy()与DiskCacheStrategy.SOURCE解决的problem.is有毕加索任何替代办法?
在这个查询中,我们将获得Glid的解决方案但不适用于Picasso.how我可以重用图像而无需重新加载不同尺寸的ImageView.
这是我正在使用的代码
Picasso.with(context)
.load(URI)
.placeholder(R.drawable.ic_profile_thumb)
.resize(180, 180).centerInside()
.into(viewHolder.imgThumbnail);
Run Code Online (Sandbox Code Playgroud) 我有一个相当大的图像URL列表,我用它来加载ViewPager使用Picasso.我需要能够通过意图(最终通过ShareActionProvider共享)为这些图像提供共享功能.从我读过的内容来看,Picasso并不是真正能够开箱即用来处理这类事情的,尽管它提供了所有必要的工具.
我在研究之前的计划是创建一个LruCache使用url作为键和位图值的简单.这种缓存将onBitmapLoaded通过Picasso的Target界面进行.每当我想要共享图像时,我都会检查位图的缓存.如果它不在那里,我将与毕加索一起取.既然我有一个缓存的位图,我会写一个文件(...这部分似乎不对,虽然我必须写一个文件来获取一个uri,对吗?)并添加文件uri到意图.
但是我看到Picasso.Builder我可以设置(并保留对我自己的缓存的引用) - /sf/answers/1298679161/.这意味着我可以Target通过正确实施hashCode和equals方法来消除习惯和混乱,以确保准确的回收,检索等.
我的问题是,毕加索如何使用这个缓存?有什么关键?有没有办法获得位图Uri而不将其写入磁盘?
我想要显示ViewPager约50页,每页包含不同的图像.使用Picasso,前20-25页完美无缺.但是,那时我得到了一个OutOfMemoryError,并没有任何图像加载:
Throwing OutOfMemoryError "Failed to allocate a 7477932 byte allocation with 1932496 free bytes"
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码PagerAdapter:
@Override
public Object instantiateItem(final ViewGroup container, final int position) {
View view = getView();
Picasso picasso = getImageLoader(mContext);
picasso.load(getUrl(position)).fit().into((ImageView) view.findViewById(R.id.imageview));
container.addView(view);
return view;
}
@Override
public void destroyItem(final ViewGroup container, final int position, final Object object) {
container.removeView((View) object);
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能避免这种情况?
有没有办法传递bitmap-config或强制这个BitmapConfig?我不想通过Transformation()来做,因为这会占用比需要更多的CPU,我不确定这是否在缓存之前完成(我做这个的主要原因是缓存中的图像不应该消耗那么多记忆)
我试图用毕加索从三个Bitmap图像中获取三个图像URL
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab2);
Drawable d1 = new BitmapDrawable(Picasso.with(Tab2.this).load(zestimateImg1).get());
}
Run Code Online (Sandbox Code Playgroud)
我正在FATAL EXCEPTION使用此代码.我怀疑它与这应该在内部完成的事实有关AsyncTask,但我不能让它工作.如果使用这是可以避免的,我想在不使用的情况下这样做AsyncTask.
如何在不崩溃的情况下运行此代码?
如果最好的方法是AsyncTask,那么该解决方案是可以的.
android imageview android-asynctask illegalstateexception picasso
我有一个ImageView.当您单击ImageView时,它将打开图库,您将获取图像并在ImageView上显示它.我有一个条件,当我关闭我的应用程序,然后我打开它,图像将保留在那里.所以,为此,我将图像Uri存储在sharedprefrence上.在打开应用程序时,我正在检索相同的Uri并尝试在imageView上显示图像.
然而在一些手机中 - 图像看起来像Mi(Lollipop),三星(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);
Run Code Online (Sandbox Code Playgroud)
在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 into a sharedpreference
profile_image=uri.toString();
}
Run Code Online (Sandbox Code Playgroud)
在从sharedprefrence检索时,我通过使用将String转换为uri Uri.parse(profile_image)
但是如果我注意到,uri为不同的Android手机返回如下
Mi(Lollipop)- Uri=content://media/external/images/media/12415
samsung(KitKat)-Uri=content://media/external/images/media/786
Motorola(Marshmallow)- Uri=content://com.android.providers.media.documents/document/image%3A30731
One Plus One (Marshmallow)- Uri=content://com.android.providers.media.documents/document/image%3A475
Run Code Online (Sandbox Code Playgroud)
因此,当uri内容是-content:// media/external/images/media /是在ImageView Perfect上显示图像时,在其他情况下它不是