21

外部アプリなしでドキュメントを開くプログラムを作成したい。電話の向き(ピッチとロール)でドキュメントをスクロールしたいので、これが必要です。画面の下部にボタンを作成し、ボタンを押したままにすると、ドキュメントもスクロールできます。ボタンを離すと、スクロールできません。そのため、外部アプリでドキュメントを開くと、ボタンが消え、sensorManager も機能しません。

この問題を解決するアイデアを誰かに持ってください。または、携帯電話の向きで、外部アプリで開いたドキュメントをスクロールする方法を誰かに考えてもらえますか?

(私の英語でごめんなさい)

これは私のマニフェストです:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.orientationscrolling"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.orientationscrolling.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>

これは私のレイアウトです:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<WebView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    android:orientation="vertical" >

<Button 
   android:id="@+id/mybutt"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="25sp"
   android:text="Scroll!!"
   android:layout_gravity="right"/>
</LinearLayout>

これは私のコードです:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    button = (Button) findViewById( R.id.mybutt );

    String pdf = "http://www.pc-hardware.hu/PDF/konfig.pdf";
    String doc="<iframe src='http://docs.google.com/gview?embedded=true&url=http://www.pc-hardware.hu/PDF/konfig.pdf' width='100%' height='100%' style='border: none;'></iframe>";
    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginsEnabled(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.loadData( doc , "text/html", "UTF-8");
}
4

4 に答える 4

31

それを行うにはカスタムライブラリを使用する必要があると思います。これこれを参照してください

しかし、別のアプリケーションを呼び出さずに PDF を表示する方法があります。

これは、Android アプリで PDF を表示する方法であり、PDF ドキュメントをAndroid WebViewに埋め込んでいます。http://docs.google.com/viewer

擬似

String doc="<iframe src='http://docs.google.com/viewer?url=+location to your PDF File+' 
              width='100%' height='100%' 
              style='border: none;'></iframe>";

サンプルを以下に示します

 String doc="<iframe src='http://docs.google.com/viewer?url=http://www.iasted.org/conferences/formatting/presentations-tips.ppt&embedded=true' 
              width='100%' height='100%' 
              style='border: none;'></iframe>";

コード

    WebView  wv = (WebView)findViewById(R.id.webView); 
    wv.getSettings().setJavaScriptEnabled(true);
    wv.getSettings().setPluginsEnabled(true);
    wv.getSettings().setAllowFileAccess(true);
    wv.loadUrl(doc);
    //wv.loadData( doc, "text/html",  "UTF-8");

そしてマニフェストで提供する

<uses-permission android:name="android.permission.INTERNET"/>

これを見る

注意 : Android のさまざまなバージョンとの互換性の問題については認識していません

このアプローチの欠点は、インターネット接続が必要なことです。しかし、私はそれがあなたのニーズを満たすと思います

EDITこれをiframeのsrcとして試してください

src="http://docs.google.com/gview?embedded=true&url=http://www.pc-hardware.hu/PDF/konfig.pdf"

試してみてくださいwv.loadData( doc , "text/html", "UTF-8");。どちらも私のために働く

ここに画像の説明を入力ここに画像の説明を入力

于 2013-01-29T08:38:51.033 に答える
1

さて、私は以下が解決策だと思います

 String doc="<iframe src='http://docs.google.com/viewer?url=http://www.example.com/yourfile.pdf&embedded=true' width='100%' height='100%'  style='border: none;'></iframe>";


    WebView  wv = (WebView)findViewById(R.id.wv);
    wv.setVisibility(WebView.VISIBLE);
    wv.getSettings().setJavaScriptEnabled(true);
    wv.getSettings().setAllowFileAccess(true);
    wv.getSettings().setPluginState(WebSettings.PluginState.ON);  
    wv.setWebViewClient(new Callback()); 
    wv.loadData(doc, "text/html", "UTF-8");   

これがあなたを助けることを願っています:)

于 2016-08-25T12:30:37.797 に答える
1

Googleドキュメントに依存する上記の回答は、インターネットに接続している場合にのみ機能します。より良いオプションは、Android PdfRendererクラスを使用することです。

ここでサンプルアプリを試すことができます。

于 2018-11-25T02:34:31.790 に答える