5

Android アプリケーションで、WebView. Google Play book にある機能に似ています。これを達成する方法を知っている人はいますか?

WebView私のコンテンツはhtml形式であるため、を使用しています。

基本的にこの効果について話します:

ここに画像の説明を入力

4

3 に答える 3

0

API レベル 11 から、TextViewtextIsSelectableflagを使用できます。


編集: 質問は特に言及するように編集されていますがWebView、OP @Suhail のコメント「私のコンテンツは html 形式です」はTextView、いくつかの基本的な HTML もレンダリングできるため、完全に失格ではありません。

于 2013-05-24T10:19:47.390 に答える
0

WebView を使用している場合は、PDF をレンダリングできる Mozilla PDF.JS を統合してみてください。画像も含めることができます。

于 2014-07-08T04:50:46.767 に答える
0

テキストを選択するときに表示される青色の選択範囲は、標準の Android 環境の一部です。したがって、カスタム コードを必要とせずに、標準の webview で動作するはずです。=> 私はもはやこれが真実であるとは確信していません。そうではないようです。

ただし、緑 (黄、オレンジ、赤など) の選択はカスタムです。

選択イベントから選択したテキストを読み取り、その情報を使用して html コンテンツを更新し、背景色セットでテキストをスパンでラップすることができます。

代替アプローチは、javascript を使用し、webview で javascript を有効にすることです。ただし、それを行う方法はわかりません。

そのアプローチを確認するためのいくつかのソースは、https://github.com/btate/BTAndroidWebViewSelectionAndroid: WebView からテキストを選択し、onclick で強調表示する方法です。

WebView の詳細からのテキスト選択

テキスト選択を機能させるWebViewには、次のスニペットを使用できます (この質問から)。(コンテキスト)メニューからのボタンクリック(またはその他のイベント)でこれをトリガーします。

private void emulateShiftHeld(WebView view)
    {
        try
        {
            KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
                                                    KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0);
            shiftPressEvent.dispatch(view);
            Toast.makeText(this, "select_text_now", Toast.LENGTH_SHORT).show();
        }
        catch (Exception e)
        {
            Log.e("dd", "Exception in emulateShiftHeld()", e);
        }
    }
于 2013-05-24T10:16:37.750 に答える