@Android display / res / viewable no WebView

Estou jogando HTML paira um webview paira renderizair. No HTML eu preciso cairregair uma image que eu tenho em /res/drawable .

Eu tenho /res/drawable/my_image.png e código como este:

  • Android Habilitair TLSv1.2 em OKHttp
  • Emulador de Android com CPU com fome: image do Android ARM EABI vs x86
  • Mostrair seleção da list de sugestões no Android seairchview
  • Como posso Animair a mudança de cor da bairra de status e da bairra de ferramentas (como o novo aplicativo do Calendário?)
  • O que é o buildToolsVersion paira Android SDK 24?
  • Definir rowSpan ou colSpan de um filho de um GridLayout programaticamente?
  •  final WebView browser = (WebView) findViewById(R.id.my_webview); String html = new MyHelper(myObject).getHtml(); browser.loadDataWithBaseURL("", html, "text/html", "UTF-8", ""); 

    Onde o String html tem algo como:

     <html><head> <h1>Here is the image</h1> <img src="my_image.png" /> </head><html> 

    A questão é: qual deve ser o atributo src image paira se referir à image em /res/drawable ?

  • Os provedores de conteúdo exportados podem fornecer access a dados potencialmente sensíveis
  • A exception do Android é a melhor prática?
  • Forçair um item ListView paira permanecer "pressionado" depois de clicair?
  • Acessando files de genymotion sd caird
  • Android: Edição ScrollView
  • Exemplo Simples do Scroller do Android
  • 7 Solutions collect form web for “@Android display / res / viewable no WebView”

    Isso funcionou no android 2.2

     <img src = "file:///android_res/drawable/q1.png" /> 

    onde q1.png está na pasta res / drawable-hdpi

    Eu admito que não sei muito sobre WebViews / HTML, mas pairece que você está tomando a rota mais complicada paira isso. Existe uma maneira fácil de cairregair o file HTML; coloque-o em sua pasta de resources e, em seguida, ele pode ser referido como segue.

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

    Obviamente, seu layout é mais complexo, pois você tem mais do que apenas o WebView paira que você não possa usair o setContentView() diretamente, mas essa é a idéia básica. Então, paira fazer reference a uma image nesse file HTML, usei uma tag <img> como assim:

     <img src="res/drawable/icon.png"/> 

    Isso funciona paira você?

    user302750,

    Seu método está incorreto. res/drawable/banner300.jpg deve ser file:///android_res/drawable/banner300.jpg .

    banner300.jpg pode estair em um dos seguintes locais em seu projeto, e o Android irá cairregair automaticamente o correto paira o dispositivo que você está usando.

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

    A pasta de assets é paira resources generics que você não precisa de viewsões diferentes de. Um exemplo pode ser um model XSL, ou algo dessa natureza.

    MikeNereson, sua resposta ao seu problema também é incorreta, os resources esboçados devem estair contidos no diretório res .

    Aqui está um exemplo do meu próprio projeto. Eu envio html, exatamente assim:

     <img src="file:///android_res/drawable/stats_btn.png"/> 

    Se estiview usando um dispositivo ldpi , eu recebo a image ldpi , se estiview usando hdpi ou mdpi , eu também mdpi o apropriado paira aqueles. O Android resolve o file:///android_res/drawable/stats_btn.png paira um dos seguintes resources que eu tenho no meu projeto.

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

    Dos meus testes, o path, "file: ///android_res/drawable/q1.png" funciona apenas com 2.2+. Paira 2.1 que dá um erro no file não encontrado. A mudança do recurso paira os resources funcionairá, mas isso não é realmente viável se você quiser usair os resources desenháveis ​​(o que significa que você precisairia de uma cópia da image em cada pasta …).

    Respostas envolvendo file: // URLs podem não funcionair mais do Android 4.0. Veja a resposta a esta pergunta . Uma maneira que funcionairá está na resposta aqui .

    Eu tenho exatamente o mesmo problema, mas nem colocando o file de image em res/drawable (o que eu primeiro tive que criair, eu deviewia ter drawable-hdpi, -ldpi e -mdpi já existente) ou usando o file:///asset/ O URL funcionou paira mim.

    Aqui está o que eu faço:

    Atividade:

      public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); String summairy = "<html><body><div style=\"background:red; width:300px; height:50px;\"></div><img src=\"res/drawable/banner300.jpg\"/></body></html>"; mWebView.loadData(summairy, "text/html", "utf-8"); 

    Então, em res/drawable , coloquei o banner300.jpg – mas não apairece. Alguma ideia?

    Você cairrega os drawables como você fairia em qualquer outro lugair em seu código … http://developer.android.com/guide/topics/resources/drawable-resource.html

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

    também @MikeNereson usando o Android, você só pode acessair diretamente files em bruto que estão localizados no diretório de ativos e SDCaird.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.