@Android在WebView中显示/ res /可查看

我将HTML投射到webview进行渲染。 在HTML中,我需要加载/res/drawable的图像。

我有/res/drawable/https://stackoverflow.com/questions/2630829/android-display-res-viewable-in-webview/my_image.png和这样的代码:

 final WebView browser = (WebView) findViewById(R.id.my_webview); String html = new MyHelper(myObject).getHtml(); browser.loadDataWithBaseURL("", html, "text/html", "UTF-8", ""); 

String html含义如下:

  

Here is the image

问题是,该图像的src属性应该指向/res/drawable的图像?

  • HTML滚动事件在ScrollView内部的Android WebView中
  • webview无法从SD卡加载html文件
  • 如何以编程方式截取webview的截图,捕获整个页面?
  • 在Viewpager中滚动Webview
  • 在WebView中禁用缩放缩放?
  • 如何在android中清除webview历史记录
  • 如何根据屏幕大小将Epub Html拆分为多个页面
  • 阻止Android WebViewcaching数据
  • 这适用于android 2.2

      

    其中q1.png位于res / drawable-hdpi文件夹中

    我承认我对WebViews / HTML知之甚少,但看起来你正在采取更复杂的路线。 有一种简单的方法来加载HTML文件; 把它放在你的资产文件夹中,然后可以参考如下。

     WebView webView = new WebView(this); webView.loadUrl("file:///android_asset/index.html"); setContentView(webView); 

    显然你的布局更复杂,因为你不仅仅是WebView,所以你不能直接使用setContentView() ,但这是基本的想法。 然后,为了引用该HTML文件中的图像,我使用了一个标签,如下所示:

      

    那对你有用吗?

    user302750,

    你的方法不正确。 res/drawable/banner300.jpg应该是file:///android_res/drawable/banner300.jpg

    banner300.jpg可以位于项目中的以下位置之一,android会自动为您正在使用的设备加载正确的位置。

    • res/drawable/banner300.jpg
    • res/drawable-ldpi/banner300.jpg
    • res/drawable-mdpi/banner300.jpg
    • res/drawable-hdpi/banner300.jpg
    • res/drawable-xhdpi/banner300.jpg

    assets文件夹用于不需要不同版本的通用资源。 一个例子可能是XSL模板,或者那种性质的东西。

    MikeNereson,您对问题的回答也不正确,可绘制的资源应该包含在res目录中。

    这是我自己项目的一个例子。 我输出html,完全是这样的:

      

    如果使用ldpi设备,我会得到ldpi图像,如果使用hdpimdpi ,我ldpi得到ldpi图像。 Android将file:///android_res/drawable/stats_btn.png解析为我项目中的以下资源之一。

    • ./res/drawable-ldpi/stats_btn.png
    • ./res/drawable-hdpi/stats_btn.png
    • ./res/drawable-mdpi/stats_btn.png

    从我的测试中,路径“file:///android_res/drawable/q1.png”仅适用于2.2+。 对于2.1,提供文件未find错误。 将资源移动到资源将起作用,但如果您想要使用可绘制function(这意味着您需要每个文件夹中的图像副本……),这是不可行的。

    涉及file:// URL的答案可能不再适用于Android 4.0。 请参阅此问题的答案。 一种可行的方法就是答案。

    我有完全相同的问题,但既没有将图像文件放在res/drawable (我首先必须创建,我必须有drawable-hdpi,-ldpi和-mdpi已经存在)或使用file:///asset/url对我有用。

    这是我做的:

    活动:

      public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); String summary = "
    "; mWebView.loadData(summary, "text/html", "utf-8");

    然后在res/drawable我放置了banner300.jpg – 但它没有显示出来。 有任何想法吗?

    您可以像在代码中的任何其他位置一样加载drawable … http://developer.android.com/guide/topics/resources/drawable-resource.html

     Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.myimage); 

    还有@MikeNereson使用Android,你只能直接访问位于assets目录和SDCard中的原始文件。