Приветствую!
В общем задолбался я с гуглами и стэковерлоуами... Вопрос такой:
Есть изображение формата .png
Есть html файл
Надо показать в webview html с картинками png - не получается...
Сложность в том, что мои изображения не находятся в самой проге, т.е в папках типа assets или raw.. поэтому я не могу воспользоваться примерами адресации изображений типа android_assets мои фотки запакованы в zip и при порвом запуске я их распоковываю в /data/data/com.app/
там же лежат html файлы, там адреса я проставлял просто src="img.png" и со слешем src="/img.png" и вот так src="file///data/data/com.app/img.png" - на выходе никакой разницы, текст я норм читаю а фотки не показываются, помогите плиз!!!
Как правильно прописать адрес к локальным картинкам в локальном html файле?
P.S. Фотки и html файлы после первого запуска действительно лежат там где должны лежать! - у меня рут доступ - проверено!
Не советуйте мне впихнуть фотки в пакетный файл - у меня их 7000!!!
Заранее благодарю!
Webview & Local Images
Re: Webview & Local Images
У меня всё работает, сделано на основе урока 32:
[syntax=java]
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
final String TAG ="mylog";
File htm;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
(findViewById(R.id.btnWeb)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent in = new Intent(Intent.ACTION_VIEW);
File f = new File("/sdcard/html/test.html");
in.setDataAndType(Uri.fromFile(f), "text/html");
startActivity(in);
}
});
}
}
[/syntax]
[syntax=html5]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Заголовок документа</TITLE>
</HEAD>
<BODY>
Текст документа
<img src="mypic.png" alt="альтернативный текст">
</BODY>
</HTML>
[/syntax]
Права в AndroidManifest.xml
[syntax=xml]<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />[/syntax]
[syntax=java]
import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
final String TAG ="mylog";
File htm;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
(findViewById(R.id.btnWeb)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent in = new Intent(Intent.ACTION_VIEW);
File f = new File("/sdcard/html/test.html");
in.setDataAndType(Uri.fromFile(f), "text/html");
startActivity(in);
}
});
}
}
[/syntax]
[syntax=html5]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Заголовок документа</TITLE>
</HEAD>
<BODY>
Текст документа
<img src="mypic.png" alt="альтернативный текст">
</BODY>
</HTML>
[/syntax]
Права в AndroidManifest.xml
[syntax=xml]<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />[/syntax]
- Вложения
-
- 02.png (20.95 КБ) 5120 просмотров
-
- 01.png (10.2 КБ) 5120 просмотров
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Webview & Local Images
trew, к сожалению "никаких" изменений, я сейчас покопался в stackoverflow и подумал может дело в Base Url и стал вызывать код так:
Где
baseURL="file:///mnt/sdcard/.dir"; - .dir - папка где находятся файлы html и изображений
myContent - считанный html код текущего документа..
На выходе я получаю нормальное отображение html но вместо изображений показываются синие квадратики со знаком вопроса (это и есть изменение после смены loadData на loadDataWithBaseURL - раньше вместо изображений просто были пустые области)
На буржнете говорят что это ошибка Flash Player но причем Flash Player когда я открываю фотки? - Стало быть причина в другом...
Если открыть сам html файл через Opera Mobile или Dolphin все прекрасно работает и показывается! - Помогите пожалуйста!
Код: Выделить всё
webview.loadDataWithBaseURL(baseURL, myContent, "text/html", "UTF-8", null);
baseURL="file:///mnt/sdcard/.dir"; - .dir - папка где находятся файлы html и изображений
myContent - считанный html код текущего документа..
На выходе я получаю нормальное отображение html но вместо изображений показываются синие квадратики со знаком вопроса (это и есть изменение после смены loadData на loadDataWithBaseURL - раньше вместо изображений просто были пустые области)
На буржнете говорят что это ошибка Flash Player но причем Flash Player когда я открываю фотки? - Стало быть причина в другом...
Если открыть сам html файл через Opera Mobile или Dolphin все прекрасно работает и показывается! - Помогите пожалуйста!
Re: Webview & Local Images
Обнаружил в своём коде неправильность.
так писать нельзя:
File f = new File("/sdcard/html/test.html");
так как на всех устройствах путь к sd-карте разный. нужно так:
File f= Environment.getExternalStorageDirectory();
а далее прибавлять к этому пути
"/html/test.html"
Только это всё нужно привести к типу String (когда соединяем эти строки), а затем к типу File.
Вот пример для включения Java. Нужно поискать может ещё что-то включить.
[syntax=java] // Java enable
// webView.getSettings().setJavaScriptEnabled(true); [/syntax]
так писать нельзя:
File f = new File("/sdcard/html/test.html");
так как на всех устройствах путь к sd-карте разный. нужно так:
File f= Environment.getExternalStorageDirectory();
а далее прибавлять к этому пути
"/html/test.html"
Только это всё нужно привести к типу String (когда соединяем эти строки), а затем к типу File.
Такое может быть, когда во встроенном браузере не включено что-то.x.dr писал(а):Если открыть сам html файл через Opera Mobile или Dolphin все прекрасно работает и показывается!
Вот пример для включения Java. Нужно поискать может ещё что-то включить.
[syntax=java] // Java enable
// webView.getSettings().setJavaScriptEnabled(true); [/syntax]
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Webview & Local Images
там нечего больше включать (в GetSettings) есть loadImagesAutomatically и blocknetimages - все это включил а изменений никаких, потестил на другом телефоне - та же фигня...
Re: Webview & Local Images
Как это нечего включать? У браузера куча настроек.x.dr писал(а):там нечего больше включать (в GetSettings) есть loadImagesAutomatically и blocknetimages - все это включил а изменений никаких, потестил на другом телефоне - та же фигня...
Откройте браузер - Меню - Настройки.
(нужно поискать, как программно это задавать, если отключено)
Первый скриншот в интернете нашел, остальные у меня в браузере.
- Вложения
-
- 01.jpg (19.55 КБ) 5066 просмотров
-
- 02.png (11.65 КБ) 5066 просмотров
-
- 03.png (15.75 КБ) 5066 просмотров
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.