私はピカソを使用してmysql DBからカスタムリストビューに画像をロードしています。 URLが直接渡されると画像が読み込まれますが、URLを文字列に割り当てて渡すと、パスが空であってはならないという例外がスローされます。
String imageStringUrl = md.Image;
画像文字列には http://example.com/image.jpg が含まれています
以下のようにピカソを渡します。
Picasso.get()
.load(imageStringUrl)
.into(iview);
このように渡すと、Java.lang.IllegalArgumentException:パスが空であってはなりません。上記の手順を以下のように試しましたが、画像が読み込まれません。
Picasso.get()
.load(new File(imageStringUrl))
.into(iview);
上記の宣言の何が問題になっていますか?
同様の問題がありました。 URL文字列が空かどうかを確認してください。空の場合は、デフォルトの画像を指定するか、URLから読み込みます。お役に立てれば。
if (image.isEmpty()) {
iview.setImageResource(R.drawable.placeholder);
} else{
Picasso.get().load(image).into(iview);
}
最初に文字列パスをトリミングして、URL文字列が空かどうかを確認しますが、image.isEmpty()
のようにチェックせずに、次のチェックを行います。
if (path.trim().length() == 0)
私はピカソからのコードをチェックしました、そしてそれは彼らがこのようにチェックしている方法です。参考までに、コードベースのコードを以下に示します。
public RequestCreator load(String path) {
if (path == null) {
return new RequestCreator(this, null, 0);
}
if (path.trim().length() == 0) {
throw new IllegalArgumentException("Path must not be empty.");
}
return load(Uri.parse(path));
}
md.Image
は空の文字列を返します。だからあなたのimage url
in picasso
in this like:
Picasso.get()
.load(" http://xxx.xxx.com/images/New%20folder/Desert.jpg.")
.into(imageView);
それがうまくいくことを願っています。