zoukankan      html  css  js  c++  java
  • Android 显示 PDF 文件

    1、开源项目地址 :

      https://github.com/JoanZapata/android-pdfview

    2、引用

        compile 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'

    3、布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <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:fitsSystemWindows="true"
        tools:context="zyj.com.myapplication.MainActivity">
    
    
        <com.joanzapata.pdfview.PDFView
            android:id="@+id/pdfView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />
    
    
    </RelativeLayout>

    使用

    package zyj.com.myapplication;
    import android.graphics.Canvas;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.Toast;
    import com.joanzapata.pdfview.PDFView;
    import com.joanzapata.pdfview.listener.OnDrawListener;
    import com.joanzapata.pdfview.listener.OnLoadCompleteListener;
    import com.joanzapata.pdfview.listener.OnPageChangeListener;
    
    import java.io.File;
    
    public class MainActivity extends AppCompatActivity implements OnPageChangeListener
            , OnLoadCompleteListener  , OnDrawListener {
    
        private PDFView pdfView ;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            pdfView = (PDFView) findViewById( R.id.pdfView );
    
            //从assets目录读取pdf 
            displayFromAssets("bao.pdf");
    
            //从文件中读取pdf
            displayFromFile( new File( "fileName"));
    
        }
    
        private void displayFromAssets(String assetFileName ) {
            pdfView.fromAsset(assetFileName)   //设置pdf文件地址
                    .defaultPage(6)         //设置默认显示第1页
                    .onPageChange(this)     //设置翻页监听
                    .onLoad(this)           //设置加载监听
                    .onDraw(this)            //绘图监听
                    .showMinimap(false)     //pdf放大的时候,是否在屏幕的右上角生成小地图
                    .swipeVertical( false )  //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
                    .enableSwipe(true)   //是否允许翻页,默认是允许翻页
                   // .pages( 2 , 3 , 4 , 5  )  //把2 , 3 , 4 , 5 过滤掉
                    .load();
        }
    
        private void displayFromFile( File file ) {
            pdfView.fromFile(file)   //设置pdf文件地址
                    .defaultPage(6)         //设置默认显示第1页
                    .onPageChange(this)     //设置翻页监听
                    .onLoad(this)           //设置加载监听
                    .onDraw(this)            //绘图监听
                    .showMinimap(false)     //pdf放大的时候,是否在屏幕的右上角生成小地图
                    .swipeVertical( false )  //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
                    .enableSwipe(true)   //是否允许翻页,默认是允许翻
                    // .pages( 2 , 3 , 4 , 5  )  //把2 , 3 , 4 , 5 过滤掉
                    .load();
        }
    
        /**
         * 翻页回调
         * @param page
         * @param pageCount
         */
        @Override
        public void onPageChanged(int page, int pageCount) {
            Toast.makeText( MainActivity.this , "page= " + page +
                    " pageCount= " + pageCount , Toast.LENGTH_SHORT).show();
        }
    
        /**
         * 加载完成回调
         * @param nbPages  总共的页数
         */
        @Override
        public void loadComplete(int nbPages) {
            Toast.makeText( MainActivity.this ,  "加载完成" + nbPages  , Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
           // Toast.makeText( MainActivity.this ,  "pageWidth= " + pageWidth + "
           // pageHeight= " + pageHeight + " displayedPage="  + displayedPage , Toast.LENGTH_SHORT).show();
        }
    }

    4、项目地址 ( android Studio 环境)

     http://download.csdn.net/detail/yanzi2015/9341525

  • 相关阅读:
    当期所得税费用总额
    所得税净利润算法
    [AGC028B]Removing Blocks 概率与期望
    bzoj 4319: cerc2008 Suffix reconstruction 贪心
    bzoj 2430: [Poi2003]Chocolate 贪心
    BZOJ 2839: 集合计数 广义容斥
    luogu 5505 [JSOI2011]分特产 广义容斥
    CF504E Misha and LCP on Tree 后缀自动机+树链剖分+倍增
    CF798D Mike and distribution 贪心
    CF707D Persistent Bookcase 可持久化线段树
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/6228581.html
Copyright © 2011-2022 走看看