我试图在ma app中集成进度条.但我无法跟踪回调方法.进度条总是显示如何隐藏图像被锁定时?
holder.imageView = (ImageView) localView.findViewById(R.id.imageView1);
holder.progressBar = (ProgressBar) localView.findViewWithTag(R.id.progressBar1);
localView.setTag(holder);
url = getItem(paramInt);
Picasso.with(getApplicationContext())
.load(url)
.placeholder(R.drawable.ic_launcher)
.error(R.drawable.ic_launcher)
.fit()
.into(holder.imageView, new Callback() {
@Override
public void onSuccess() {
holder.imageView.setVisibility(View.VISIBLE);
holder.progressBar.setVisibility(View.INVISIBLE);
}
@Override
public void onError() {
holder.progressBar.setVisibility(View.VISIBLE);
holder.imageView.setVisibility(View.INVISIBLE);
}
});
Run Code Online (Sandbox Code Playgroud) 我有一些带有白色背景的图像和一些带有透明背景的图像.当创建它们的圆形图像时,我希望它们都具有白色背景,所以基本上我想用白色像素替换图像的透明像素.
有没有办法实现这一点,而不是逐个替换像素?这是我用于创建圆角图像的转换:
package com.mobilefootie.util;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
public class RoundedTransformation implements com.squareup.picasso.Transformation {
public RoundedTransformation() {
}
@Override
public Bitmap transform(final Bitmap source) {
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size);
if (squaredBitmap != source) {
source.recycle();
}
Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());
Canvas …Run Code Online (Sandbox Code Playgroud) 我一直在调查Picaso,Android的图像下载和缓存库.我发现他们的缓存机制基于Android HttpResponseCache.文件说:
为了测量缓存有效性,该类跟踪三个统计信息:
- 请求计数:自创建此缓存以来发出的HTTP请求数.
- 网络计数:需要网络使用的请求数.
- 命中计数:缓存提供响应的请求数.
那么Android Http缓存究竟是如何工作的呢?
像往常一样,我们使用适配器来填充listView.在适配器中我们使用picasso来加载图像.我看到,当将图像加载到目标(imageView)时,行会被回收,毕加索会自动取消对该目标的请求.
如何在离开片段或活动时取消所有未完成的请求?
所以我正在尝试将新的Firebase应用程序内消息传递功能实现到我的Android应用程序中.但出于任何原因,应用程序崩溃的那一刻我将库添加到我的gradle中.
这是我的傻瓜:
implementation 'com.google.firebase:firebase-inappmessaging-display:17.0.0'
implementation 'com.squareup.picasso:picasso:2.71828'
Run Code Online (Sandbox Code Playgroud)
我在这里给了poicasso因为在崩溃日志中我得到了与毕加索有关的错误
这是日志文件:
08-19 18:10:08.482 26606-26606/com.kirtu.simpletexts.texts.debug E/CrashlyticsCore: Failed to execute task.
java.util.concurrent.TimeoutException
at java.util.concurrent.FutureTask.get(FutureTask.java:177)
at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.java:41)
at com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:320)
at com.crashlytics.android.core.CrashlyticsController$6.onUncaughtException(CrashlyticsController.java:300)
at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:42)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
08-19 18:10:08.484 26606-26606/com.kirtu.simpletexts.texts.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.kirtu.simpletexts.texts.debug, PID: 26606
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/squareup/picasso/OkHttpDownloader;
at com.google.firebase.inappmessaging.display.internal.b.b.zzr.get(com.google.firebase:firebase-inappmessaging-display@@17.0.0:2038)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.zzf.get(com.google.firebase:firebase-inappmessaging-display@@17.0.0:1021)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.zzb.get(com.google.firebase:firebase-inappmessaging-display@@17.0.0:1062)
at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
at com.google.firebase.inappmessaging.display.internal.b.a.zzb.zza(com.google.firebase:firebase-inappmessaging-display@@17.0.0:104)
at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.zza(com.google.firebase:firebase-inappmessaging-display@@17.0.0:1058)
at com.google.firebase.inappmessaging.display.zza.create(com.google.firebase:firebase-inappmessaging-display@@17.0.0)
at com.google.firebase.components.zzh.zza(com.google.firebase:firebase-common@@16.0.1:29)
at com.google.firebase.components.zzi.get(com.google.firebase:firebase-common@@16.0.1)
at com.google.firebase.components.zzh.get(com.google.firebase:firebase-common@@16.0.1:40)
at com.google.firebase.components.ComponentContainer$$CC.get(com.google.firebase:firebase-common@@16.0.1:15)
at com.google.firebase.components.zzd.get(com.google.firebase:firebase-common@@16.0.1)
at com.google.firebase.components.zzd.zza(com.google.firebase:firebase-common@@16.0.1:68)
at com.google.firebase.FirebaseApp.zze(com.google.firebase:firebase-common@@16.0.1:716)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用Picasso来展示一个人的肖像,当protrait被更改时,我想清除这个用户的缓存(或所有用户的肖像缓存),这是我的代码,它不起作用,任何人都可以帮助我?
LruCache lruCache = new LruCache(context);
lruCache.clear();
Picasso picasso = new Picasso.Builder(context).memoryCache(lruCache).build();
picasso.load(portraitUrl).resize(50, 50).centerCrop().error(R.drawable.user_portrait).into(portaitView);
Run Code Online (Sandbox Code Playgroud) 我有一个加载图像的方法,如果图像尚未加载,它将在服务器上查找它.然后将其存储在apps文件系统中.如果它在文件系统中,则会加载该图像,因为这比从服务器中提取图像要快得多.如果您在未关闭应用程序之前加载了图像,它将存储在静态字典中,以便可以在不占用更多内存的情况下重新加载,以避免内存不足错误.
这一切都很好,直到我开始使用Picasso图像加载库.现在我将图像加载到ImageView中,但我不知道如何获取返回的Bitmap,以便我可以将其存储在文件或静态字典中.这使事情变得更加困难.因为这意味着它每次都试图从服务器加载图像,这是我不想发生的事情.有没有办法在将Bitmap加载到ImageView后得到它?以下是我的代码:
public Drawable loadImageFromWebOperations(String url,
final String imagePath, ImageView theView, Picasso picasso) {
try {
if (Global.couponBitmaps.get(imagePath) != null) {
scaledHeight = Global.couponBitmaps.get(imagePath).getHeight();
return new BitmapDrawable(getResources(),
Global.couponBitmaps.get(imagePath));
}
File f = new File(getBaseContext().getFilesDir().getPath()
.toString()
+ "/" + imagePath + ".png");
if (f.exists()) {
picasso.load(f).into(theView);
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助,谢谢!
由于只有毕加索知道的修道院,我无法从我的绘画加载毕加索的图像,所以当毕加索无法加载我想加载默认图像请帮助
@Override
public Object instantiateItem(ViewGroup container, final int position) {
final Context context =getApplicationContext();
final ImageView imageView = new ImageView(getApplicationContext());
int padding = context.getResources().getDimensionPixelSize(
R.dimen.padding_medium);
imageView.setPadding(padding, padding, padding, padding);
PicassoTools.clearCache(Picasso.with(context));
((ViewPager) container).addView(imageView, 0);
imageView.setTag("myview" + position);
Picasso.with(context).load(mImages[position]).resize(320,280).centerInside().placeholder(placeholderDrawable)
.into(imageView,new Callback() {
@Override
public void onError() {
// TODO Auto-generated method stub
imageView.setImageResource(R.drawable.c3);
}
@Override
public void onSuccess() {
// TODO Auto-generated method stub
}
});
Run Code Online (Sandbox Code Playgroud)
iv包括回调,希望做一些事情,但我的大脑不工作,任何帮助
我有一个问题,使用Picasso尝试从Gallery和Camera Intent 的本地Uri格式内容加载大图像://com.android.providers.media.documents/document/imageXXYYZZ.
我正在使用标准调用加载图像:
Picasso.load(image_url)
.resize(600, 240)
.centerCrop()
.into(imageTarget);
Run Code Online (Sandbox Code Playgroud)
我附在这里Target,当我得到onBitmapFailed(Drawable errorDrawable)错误触发时.另外,当我登录毕加索时,我得到:
06-23 12:13:54.267 22393-22393/it.b3lab.friendipity D/Picasso? Main created [R100] Request{content://com.android.providers.media.documents/document/image%3A13345 resize(600,240) centerCrop}
06-23 12:13:54.277 22393-23010/it.b3lab.friendipity D/Picasso? Dispatcher enqueued [R100]+9ms
06-23 12:13:54.285 22393-23038/it.b3lab.friendipity D/Picasso? Hunter executing [R100]+15ms
06-23 12:13:54.813 22393-23010/it.b3lab.friendipity D/Picasso? Dispatcher batched [R100]+546ms for error
06-23 12:13:55.014 22393-23010/it.b3lab.friendipity D/Picasso? Dispatcher delivered [R100]+746ms
06-23 12:13:55.024 22393-22393/it.b3lab.friendipity I/picasso? failed to load bitmap
06-23 12:13:55.024 22393-22393/it.b3lab.friendipity D/Picasso? Main errored [R100]+756ms
Run Code Online (Sandbox Code Playgroud)
这只发生在我上面说的当我尝试从图库中加载大图像(大约1 MB以上)和使用高分辨率相机智能手机时的相机意图(在我的情况下,它是在Android 5.0.1上运行的Moto G) ).我没有在Android 4.4上使用Samsung …
我正在使用Picasso将图像从mysql DB加载到自定义列表视图中.直接传递URL时会加载图像,但是当我将URL分配给字符串并传递它时,它会抛出异常,表示路径不能为空.
String imageStringUrl = md.Image;
Run Code Online (Sandbox Code Playgroud)
图像字符串包含http://example.com/image.jpg
我正如下面的毕加索一样过世.
Picasso.get()
.load(imageStringUrl)
.into(iview);
Run Code Online (Sandbox Code Playgroud)
当我像这样传递时,我得到java.lang.IllegalArgumentException:Path不能为空.我已尝试过上面的步骤,但图片未加载.
Picasso.get()
.load(new File(imageStringUrl))
.into(iview);
Run Code Online (Sandbox Code Playgroud)
上述声明有什么问题?