Проблема с веб-обзором и прокруткой - PullRequest
4 голосов
/ 20 января 2012

Я не могу решить мою проблему с scrollView и webView, я знаю, что я не могу поместить webview в scrollview, но я не представляю, как это сделать.В моем scrollView у меня есть изображение (1280 x 1300>), и это изображение должно быть с прокруткой, под изображением я должен иметь веб-просмотр с содержанием HTML.Есть ли у вас какие-либо идеи, как мне это сделать?

- это какой-то другой способ поместить html-контент в какое-то представление?

Это мой вид XML, и я добавляю изображение и веб-просмотр в свою деятельностькласс

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

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <ScrollView
            android:id="@+id/scroll_journal_page"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
        </ScrollView>

        <Gallery
            android:id="@+id/listview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="#d5d5d3" />
    </RelativeLayout>
</RelativeLayout>

</LinearLayout>

я создаю вид примерно так:

    protected void onPostExecute(Bitmap result) {
        Animation fadeInAnimation = AnimationUtils.loadAnimation(Journal.this, R.anim.fade_in);

        relativeLayout = new LinearLayout(getApplicationContext());
        relativeLayout.setLayoutParams(new FrameLayout.LayoutParams(WIDTH, result.getHeight() + HEIGHT));
        relativeLayout.setOrientation(1);
        coverImage = new ImageView(getApplicationContext());
        coverImage.setImageBitmap(result);

        relativeLayout.addView(coverImage);
        Integer pageNumber = Integer.valueOf(ArrayHelper.journalList.get(pageIdentity).get("pageId").toString());
        File file = new File(Environment.getExternalStorageDirectory() + "/MCW/"+ pageNumber +"/content.html");
        if(file.exists()) {
            LinearLayout linearLayout = new LinearLayout(getApplicationContext());
            linearLayout.setLayoutParams(new FrameLayout.LayoutParams(WIDTH, HEIGHT));
            WebView wV = new WebView(getApplicationContext());
            try {
                InputStream fin = null;
                int len;
                fin = new BufferedInputStream(new FileInputStream(file));
                byte[] buffer = new byte[fin.available()];
                len = fin.read(buffer);
                fin.close();
                String rawText = EncodingUtils.getString(buffer, 0, len, "utf-8");
                wV.loadDataWithBaseURL("", rawText, "text/html", "utf-8", null);
            }catch (Exception e) {}
            linearLayout.addView(wV);
            relativeLayout.addView(linearLayout);
        }
        scrollview.addView(relativeLayout);
        scrollview.setAnimation(fadeInAnimation);
        isReadyToChange = true;
    }

Ответы [ 3 ]

0 голосов
/ 21 января 2012
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<ScrollView android:layout_width="wrap_content"
android:layout_height="fill_parent">

<LinearLayout android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView android:id="@+id/pho"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/dd1"/>

    <WebView android:id="@+id/webView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

</ScrollView>

</RelativeLayout>
0 голосов
/ 04 апреля 2012

Я не уверен, будет ли это соответствовать вашему требованию или нет, однако

is any another way to put html content with to some view ?

Вы можете использовать TextView для отображения HTML содержимого

mTextView.setText(Html.fromHtml('html_content'));

Также выполните Марк Мерфи - HTML-теги, поддерживаемые TextView

В качестве примечания, HTML может также использоваться как строковый ресурс, как описано Здесь

0 голосов
/ 20 января 2012

Просто используйте Scrollview с Height FillParent добавить высоту линейного макета = высота устройства + высота изображения

использовать линейное расположение с высотой устройства добавить webview к этому linearlayout добавить изображение и линейное расположение к этому макету

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