gpt4 book ai didi

android - 将图片保存到本地并在 webview 中显示

转载 作者:行者123 更新时间:2023-11-30 03:51:57 24 4
gpt4 key购买 nike

我在处理这段简单的代码时遇到了问题。我从网上下载一张图片并保存在本地:

               File mFile = new File(context.getFilesDir(), "a.png");
if(!mFile.exists()) { mFile.createNewFile(); }
FileOutputStream fos = new FileOutputStream(mFile);
fos.write(baf.toByteArray());
fos.flush();
fos.close();

我尝试在 ImageView 上显示此图像并且它正在工作。现在我尝试在 WebView 上显示保存图像。

  String data = "<body>" +"<img src=\"a.png\"/></body>";
webview.loadDataWithBaseURL(getActivity().getFilesDir().toString(),data , "text/html", "utf-8",null);

它不工作,webview 没有显示任何内容。我用 png 尝试 webview 我把自己放在/assets 中,它正在工作。

我认为我在字符串数据中指向文件的语法是错误的,但我不确定。

感谢任何帮助。

谢谢。

亚历克斯。

最佳答案

好的,在测试了很多不同的东西之后,我最终得到了这个工作代码。

    WebView webview = (WebView) view.findViewById(R.id.imageView);      

try {
FileInputStream in = getActivity().openFileInput("image_behindfragment.png");
BufferedInputStream buf = new BufferedInputStream(in);
byte[] bitMapA= new byte[buf.available()];
buf.read(bitMapA);
Bitmap bM = BitmapFactory.decodeByteArray(bitMapA, 0, bitMapA.length);
//imageview.setImageBitmap(bM);
if (in != null) {
in.close();
}
if (buf != null) {
buf.close();

String imgToString = Base64.encodeToString(bitMapA,Base64.DEFAULT);
String imgTag = "<img src='data:image/png;base64," + imgToString
+ "' align='left' bgcolor='ff0000'/>";
webview.getSettings().setBuiltInZoomControls(true);

webview.setInitialScale(30);
WebSettings webSettings = webview.getSettings();
webSettings.setUseWideViewPort(true);


webview.loadData(imgTag, "text/html", "utf-8");

}
} catch (Exception e) {
e.printStackTrace();
}

关于android - 将图片保存到本地并在 webview 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14013504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com