6

こんにちは私はウェブビューでhtmlページを表示するためのシンプルなアプリを作成します私はウェブビューを使用してこのようにページの読み込み時間を表示します。

データを最初にロードするときに表示する

この後、スクロールを無効にし、次と前のボタンを使用して包含を前後に移動します。だから私のコードは以下の通りです。

最初にonCreatedisplayがwebviewを追加し、htmlファイルをロードします。

        mainWebView = (WebView) findViewById(R.id.mainWebView);
    mainWebView.setVerticalScrollBarEnabled(false);
    mainWebView.setHorizontalScrollBarEnabled(false);
    mainWebView.getSettings().setJavaScriptEnabled(true);
    mainWebView.setWebViewClient(new MyWebClient());
    mainWebView.setPictureListener(new MyPictureClass());

    mainWebView.loadUrl("file:///android_asset/chapter-001.html");

MyWebclientクラスを使用して、mainwebviewの高さと幅を取得した後。

class MyWebClient extends WebViewClient 
    {
        @Override
        public void onPageFinished(WebView view, String url) 
        {
            System.err.println("Page Finish Call");
            lanscapHeight = protraitHeight = findHeight = mainWebView.getHeight();
            System.err.println("Find     Height->"+findHeight);
            System.err.println("Portait  Height->"+protraitHeight);
            System.err.println("Landscap Height->"+lanscapHeight);


        }
    }

この後、myPictureClassを使用してwebViewに含まれる長さを取得します。

class MyPictureClass implements PictureListener
    {
        @Override
        public void onNewPicture(WebView view, Picture picture) 
        {   

                proTraitContain = mainWebView.getContentHeight();

                System.err.println("picture Class Call-->"+proTraitContain);
        }
    }

この後、次と前のページを表示するには、次と前のボタンを作成します。SimpleOnGestureListenerを使用してタッチイベントを検出します。

 btnNext = (Button) findViewById(R.id.btnNext);
        btnNext.setOnTouchListener(this);
        btnPrev = (Button) findViewById(R.id.btnPrev);
        btnPrev.setOnTouchListener(this);

タッチメソッドをオーバーライドします。

 @Override
        public boolean onTouch(View view, MotionEvent event) 
        {
            if (view == btnNext)
            {
                btnClickFlage = true;
                gestureDetector.onTouchEvent(event);
            } else 
            {
                btnClickFlage = false;
                gestureDetector.onTouchEvent(event);
            }
            return false;
        }

implement the SimpleGestureListener class as Below.

class MyGesture extends SimpleOnGestureListener 
    {
        @Override
        public boolean onSingleTapUp(MotionEvent e)
        {

            super.onSingleTapUp(e);

                    System.err.println("Display Total Contain For Protrait -->"+proTraitContain);
                    System.err.println("Before Height-->" + findHeight);

                    if (btnClickFlage) 
                    {



                        if (findHeight > (proTraitContain+protraitHeight)) 
                        {
                            if(restProtraitFlag)
                            {
                                System.err.println("If part In side Flag-->"+findHeight);
                                findHeight=findHeight+protraitHeight;
                                restProtraitFlag=false;
                                //findHeight=findHeight+protraitHeight;
                                mainWebView.scrollTo(0, findHeight);
                                System.err.println("If part In side Flag-->"+findHeight);
                            }else
                            {
                                mainWebView.loadUrl("file:///android_asset/chapter-002.html");
                                restProtraitFlag=true;
                            }
                        } 
                        else
                        {
                            if(protraitFlag)
                            {
                                if(findHeight==protraitHeight)
                                {
                                    findHeight = protraitHeight;
                                }else
                                {
                                    findHeight = findHeight + protraitHeight;   
                                }
                                protraitFlag=false;
                            }else
                            {
                                findHeight = findHeight + protraitHeight;
                            }
                            mainWebView.scrollTo(0, findHeight);
                        }
                    }
                    else
                    {
                        restProtraitFlag=true;
                        if (findHeight<=0)
                        {
                            mainWebView.loadUrl("file:///android_asset/chapter-001.html");
                            System.err.println("Load Previous page");

                        } 
                        else 
                        {
                            findHeight = findHeight - protraitHeight;
                            mainWebView.scrollTo(0, findHeight);
                        }
                    }
                    System.err.println("After Height-->" + findHeight);
                }
            return true;
        }
    }

しかし、現在のhtmlページパスの最後のページを表示できません。今何をすべきか。解決策を教えてください。緊急です。コンテンツの幅を正しく取得し、scrollToメソッドを使用して表示しますが、表示できません。最後のページの後に、残りの一部のコンテンツを表示できません。

とにかく私を見た。

少し早いですがお礼を..

4

3 に答える 3

1

こんにちは友人 最後に、私は私の質問の答えを得ました.私は ScrollTo メソッドを使用して現在のページの内容をスクロールし、次の内容を表示します.しかし、問題はそこにあります.私はWebview.getScale();メソッドを使用して、webview.according で使用されるスケールの量を表示します。これに従って、このメソッドを使用し、現在の webview の内容を取得し、Display page wise.it を使用s finally itします。

カレンダーアウトセンティケーションの名前

于 2012-08-21T08:08:00.340 に答える
0

アセットフォルダーまたは SD カードに保存されている Web ページを表示しています。

したがって、私のアドバイスは、このアプローチとこの方法を残して、Webページをユーザーに表示することです..

そして、HTML ファイルを編集Anchor Tagsして、それを挿入します...ユーザーが Web ページを簡単にトラバースできるようにします。(その例

于 2012-08-20T10:44:24.040 に答える
0

こんにちは、HTML を res に配置する必要があり、その後は raw のままにしておく必要があります。その後、次のようにアクセスできます...

webviewTips.loadUrl("file:///android_res/raw/tips.html");

于 2012-08-20T09:26:30.490 に答える