WebView не воспроизводит SWF-файл на Android - PullRequest
1 голос
/ 21 мая 2011

Я занимаюсь разработкой приложения для планшета Android 3.0, которое должно воспроизводить SWF-файлы внутри WebView. Сначала я попытался открыть файл swf с устройства, затем через Интернет, но не повезло. WebView отображается, но внутри WebView все, что я вижу, это черный экран (с белой линией шириной 3-4 пикселя справа). Если я загружаю тот же URL-адрес в браузер устройства, файл флэш-памяти играет хорошо. Я думаю, что я что-то упустил в настройке WebView, но после нескольких часов поиска и поиска в Google я все еще не знаю, что.

Java-код:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    setContentView(R.layout.presentation);

    presentationWebView = (WebView) findViewById(R.id.presentation_webview);

    presentationWebView.getSettings().setJavaScriptEnabled(true);
    presentationWebView.getSettings().setPluginsEnabled(true);
    presentationWebView.getSettings().setAllowFileAccess(true);
    presentationWebView.loadUrl("http://my_domain/fileName.swf");

}

Presentation.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <WebView
        android:id = "@+id/presentation_webview"
        android:layout_width = "fill_parent"
        android:layout_height = "fill_parent"/>
</LinearLayout>

Большое спасибо за любые ответы. Ripityom

Ответы [ 3 ]

5 голосов
/ 26 мая 2011

Наконец-то я понял! Нужно только добавить атрибут

android:hardwareAccelerated = "true"

в мой файл манифеста.

2 голосов
/ 25 мая 2011

Я просто скопировал и вставил ваш код в новый проект, изменил расположение SWF-файла, и он работал отлично.(Экран остается пустым до тех пор, пока файл .swf не завершит загрузку, что в некоторых случаях может занять некоторое время).

Имеет ли ваше приложение разрешение на доступ в ИНТЕРНЕТ?URL определенно правильный?Попробуйте использовать несколько разных SWF-файлов и посмотрите, есть ли разница.

0 голосов
/ 14 июня 2011

Thx Пипитём.Атрибут «android: hardwareAclelerated» спасет мою жизнь.Также работайте для меня.

Здесь я публикую объяснение из документа для разработчиков Android: «Начиная с Android 3.0, приложения могут использовать аппаратно-ускоренный рендерер OpenGL, чтобы повысить производительность для многих распространенных операций 2D-графики.Аппаратно-ускоренный рендерер включен, большинство операций в Canvas, Paint, Xfermode, ColorFilter, Shader и Camera ускорены, что приводит к более плавной анимации, более плавной прокрутке и улучшению отзывчивости в целом, даже для приложений, которые явно не используют каркасБиблиотеки OpenGL.

Обратите внимание, что не все 2D-операции OpenGL ускорены. Если вы включили аппаратно-ускоренный рендеринг, протестируйте приложение, чтобы убедиться, что оно может использовать рендерер без ошибок. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...