我想onDraw在視圖預覽的方法中從 url 加載影像。我嘗試使用畢加索來做到這一點。但是,我在 xml 中得到一個錯誤。這就是onDraw方法。
@Override
protected void onDraw(Canvas canvas) {
this.canvas = canvas;
Picasso.get()
.load(currentUrl)
.into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Drawable d = new BitmapDrawable(getResources(), bitmap);
d.draw(canvas);
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawText("Error to load",getWidth() / 2, getHeight() / 2,paint);
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
但是,畢加索抱怨沒有加載檔案的背景關系。這是錯誤:

和文字:
java.lang.IllegalStateException: context == null
at com.squareup.picasso.Picasso.get(Picasso.java:681)
at com.sambhav2358.badgegeneratorlibrary.BadgeView.setLogo(BadgeView.java:189)
at com.sambhav2358.badgegeneratorlibrary.BadgeView.init(BadgeView.java:69)
at com.sambhav2358.badgegeneratorlibrary.BadgeView.<init>(BadgeView.java:91)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:352)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:189)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:149)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:301)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:417)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:428)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:332)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1127)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
at android.view.LayoutInflater.inflate(LayoutInflater.java:505)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:361)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:436)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:121)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:736)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$7(RenderTask.java:892)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$2.run(RenderExecutor.kt:187)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
uj5u.com熱心網友回復:
ContextAFAIK,如果應用程式未運行,則無法獲得參考。
uj5u.com熱心網友回復:
您嘗試使用 Glide 嗎?它是另一個電荷影像庫。
repositories {
mavenCentral()
}
dependencies {
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.android.support:support-v4:23.1.1'
}
嘗試這樣做
private void initLocal() {
// Charge img
Glide.with(this).load(URL).into(imgView);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/456620.html
下一篇:輸入幾行后文本輸入的底部溢位顫動
