0

アプリでPDFファイルを開こうとしています。私の問題は、奇妙な文字で表示されているため、ドキュメントを読むことができないことです。また、txtファイルを表示すると、それを読むことはできますが、テキストが希望どおりに整列していません。すべての線が中央に配置されます。私の質問は、私が間違っていることと、これらの間違いをどのように修正できるかということです。

私のxml

<!-- Demonstrates styled string resources.
     See corresponding Java code com.android.sdk.content.StyledText -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

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

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="normal" />

</LinearLayout>

</ScrollView>

とクラス

public class PrimulAjutor2A extends MainActivity2A
{
    @Override
  protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

       // See assets/res/any/layout/styled_text.xml for this
       // view layout definition.
        setContentView(R.layout.primulajutor2);

        // Programmatically load text from an asset and place it into the
       // text view.  Note that the text we are loading is ASCII, so we
       // need to convert it to UTF-16.
       try {
           InputStream is = getAssets().open("abc.pdf");

            // We guarantee that the available method returns the total
            // size of the asset...  of course, this does mean that a single
           // asset can't be more than 2 gigs.
            int size = is.available();

            // Read the entire asset into a local byte buffer.
            byte[] buffer = new byte[size];
           is.read(buffer);
            is.close();

           // Convert the buffer into a string.
           String text = new String(buffer);

            // Finally stick the string into the text view.
           TextView tv = (TextView)findViewById(R.id.text);
            tv.setText(text);
        } catch (IOException e) {
            // Should never happen!
            throw new RuntimeException(e);
        }
    }}
4

1 に答える 1

0

ウェブビューを使用してPDFを表示するには、Googleドキュメントを使用することをお勧めします。

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<WebView
    android:id="@+id/wv"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/> 


</LinearLayout>

アクティビティクラスでは、次のコードを使用します。

       WebView wv= (WebView) findViewById(R.id.wv);
     wv.setVerticalScrollBarEnabled(true);
     wv.setHorizontalScrollBarEnabled(true);
     wv.getSettings().setBuiltInZoomControls(true);
     wv.getSettings().setJavaScriptEnabled(true);
     wv.setWebViewClient(new WebViewClient());
     wv.loadUrl("https://docs.google.com/file/d/0B8ZDVNCvRWK8c3YzQVFaWjg1bEU/edit");

ここに画像の説明を入力してください

ユーザーはGoogleアカウントにログインする必要があり、ドキュメントの所有者からの許可が必要です。あなたが私にアクセスを与えたので、私は私の電話で同じものを見ることができます。サムスンギャラクシーS3でテスト済み。WebViewはスクロールおよびズームできます。

デバイスにPDFアプリケーションがインストールされている場合は、インテントを使用して、PDFファイルを開くために必要なパラメーターを提供できます。

private void openFile(File f, String mimeType)
{
Intent viewIntent = new Intent();
viewIntent.setAction(Intent.ACTION_VIEW);
viewIntent.setDataAndType(Uri.fromFile(file), mimeType);
// using the packagemanager to query is faster than trying startActivity
// and catching the activity not found exception, which causes a stack unwind.
List<ResolveInfo> resolved = getPackageManager().queryIntentActivities(viewIntent, 0);
if(resolved != null && resolved.size() > 0)
{
    startActivity(viewIntent);
}
else
{
    // notify the user they can't open it.
}
}

http://ecestage.googlecode.com/svn-history/r12/branches/src/com/pdfviewer/PdfViewerActivity.java。リンクのコードは試していません。これを試してみることができます。

于 2013-03-10T18:18:46.307 に答える