我在Android上使用Kotlin将应用数据文件夹中的图像加载到ImageView中。要加载图像,请使用Picasso,但加载过程不起作用。
路径是:
文件:///data/user/0/at.guger.speiseplan/files/KW9.jpg
我试过了:
Picasso.with(this).load(file.absolutePath).fit().into(imvMenu)
Picasso.with(this).load("file://" + file.absolutePath).fit().into(imvMenu)
使用以下方法生成和file
:
private val sMenuFileName: String = "KW%d.jpg"
fun getMenuFile(): File {
return mContext.getFileStreamPath(String.format(sMenuFileName, Utils.getWeekOfYear()))
}
该文件确实存在,因为加载到WebView有效:
String sHTML = "<html><head><meta charset=\"utf-8\"><style type=\"text/css\">body{padding: 0; margin: 0;}</style></head><body><img src=\"" + "file://" + file.toString() + "\" width=\"100%\"></body></html>";
mWebView.loadDataWithBaseURL("http://schuelerwohnheim-steyr.com", sHTML, "text/html", "utf-8", "");
使用BitmapFactory加载图像也有效,那么毕加索为什么不加载图像呢?
imvMenu.setImageBitmap(BitmapFactory.decodeFile(file.absolutePath))
答案 0 :(得分:0)
我自己多次犯了这个错误
更改
Picasso.with(this).load(file.absolutePath).fit().into(imvMenu)
Picasso.with(this).load("file://" + file.absolutePath).fit().into(imvMenu)
要
Picasso.with(this).load("file://" + “${file.absolutePath}”).fit().into(imvMenu)
如果只是Val或var
absolutePath
然后它会起作用但是因为你有那种想象力。“在那里它需要”$ {}“