最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 打開網(wǎng)絡上pdf文件

 更新時間:2017年04月02日 10:19:51   作者:請叫我小東子  
本文主要介紹了Android打開網(wǎng)絡上pdf文件的方法,具有很好的參考價值。下面跟著小編一起來看下吧

之前寫過一篇Android打開本地pdf文件的文章,最后總結的時候說,后面一定要拓展庫,讓其也能打開網(wǎng)絡的的pdf文件。今天終于可以兌現(xiàn)承諾了。frok一份代碼https://github.com/JoanZapata/android-pdfview,源碼地址:http://xiazai.jb51.net/201704/yuanma/android-pdfview-master_jb51.rar,開始改造一番。

1.基本思路:

打開網(wǎng)絡pdf 思路整體還是來源與圖片的加載。

android中加載網(wǎng)絡圖片的框架有很多個。如image-laoder, fresco、glide等,首先都是從內(nèi)存中找圖片,如果內(nèi)存中沒有,接著從本地找,本地沒有在從網(wǎng)絡下載。

android中加載pdf也是類似,首先從本地找pdf文件,如果本地存在該pdf文件,直接打開,如果本地不存在,將該pdf文件下載到本地在打開。

下載文件用到了retrofit2的庫,已經(jīng)封裝到android_pdf中了。

2.依賴android_pdf庫方法

2.1 在項目的gradle中增加如下代碼:

compile 'com.lidong.pdf:android_pdf:1.0.1'

2.2 一句代碼就可以加載網(wǎng)絡pdf。

pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName);   //設置pdf文件地址

2.3對fileFromLocalStorage(this,this,this,fileUrl,fileName)的解析

/**

 * 加載pdf文件
 * @param onPageChangeListener
 * @param onLoadCompleteListener
 * @param onDrawListener
 * @param fileUrl
 * @param fileName
 */
 public void fileFromLocalStorage(
 final OnPageChangeListener onPageChangeListener,
     final OnLoadCompleteListener onLoadCompleteListener,
     final OnDrawListener onDrawListener,
     String fileUrl,
     final String fileName)
  1. OnPageChangeListener onPageChangeListener :翻頁回調(diào)
  2. OnLoadCompleteListener onLoadCompleteListener:加載完成的回調(diào)
  3. OnDrawListener:頁面繪制的回調(diào)
  4. String fileUrl : 文件的網(wǎng)絡地址
  5. String fileName 文件名稱

3.使用android_pdf庫方法

3.1寫一個布局文件

<?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:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
tools:context="com.lidong.pdf.androidpdf.MainActivity">
 <com.lidong.pdf.PDFView
 android:id="@+id/pdfView"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 />
</RelativeLayout>

3.2在MainActivity中加載

import android.graphics.Canvas;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.lidong.pdf.PDFView;
import com.lidong.pdf.api.ApiManager;
import com.lidong.pdf.listener.OnDrawListener;
import com.lidong.pdf.listener.OnLoadCompleteListener;
import com.lidong.pdf.listener.OnPageChangeListener;
import com.lidong.pdf.util.FileUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import okhttp3.ResponseBody;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.schedulers.Schedulers;

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 );
 displayFromFile1("填寫所要打開的pdf地址");
 }
 /**
 * 獲取打開網(wǎng)絡的pdf文件
 * @param fileUrl
 * @param fileName
 */
 private void displayFromFile1( String fileUrl ,String fileName) {
 showProgress(); pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //設置pdf文件地址

 }
 /**
 * 翻頁回調(diào)
 * @param page
 * @param pageCount
 */
 @Override
 public void onPageChanged(int page, int pageCount) {
 Toast.makeText( MainActivity.this , "page= " + page +
 " pageCount= " + pageCount , Toast.LENGTH_SHORT).show();
 }
 /**
 * 加載完成回調(diào)
 * @param nbPages 總共的頁數(shù)
 */
 @Override
 public void loadComplete(int nbPages) {
 Toast.makeText( MainActivity.this , "加載完成" + nbPages , Toast.LENGTH_SHORT).show();
 hideProgress();
 }
 @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();
 }
 /**
 * 顯示對話框
 */
 private void showProgress(){
 LoadingUIHelper.showDialogForLoading(this,"報告加載中,請等待。。。",false);
 }
 /**
 * 關閉等待框
 */
 private void hideProgress(){
 LoadingUIHelper.hideDialogForLoading();
 }

代碼地址

效果實現(xiàn):

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • Android 基于Bitmap的四種圖片壓縮方式

    Android 基于Bitmap的四種圖片壓縮方式

    本文中探究的圖片壓縮方式主要是基于 Bitmap 的 api 實現(xiàn)。文中探究實現(xiàn)的壓縮方式有四種:質(zhì)量壓縮、采樣率壓縮、Matrix 縮放壓縮、圖片編碼格式壓縮,感興趣的朋友可以參考下
    2021-05-05
  • android實現(xiàn)直播點贊飄心動畫效果

    android實現(xiàn)直播點贊飄心動畫效果

    這篇文章主要為大家詳細介紹了android實現(xiàn)直播點贊飄心動畫效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Flutter禁止手機橫屏的簡單實現(xiàn)方法

    Flutter禁止手機橫屏的簡單實現(xiàn)方法

    app默認是可以橫屏的,如果需要禁止橫屏話可以參考這篇文章,本文主要給大家介紹了關于Flutter禁止手機橫屏的簡單實現(xiàn)方法,需要的朋友可以參考下
    2021-07-07
  • Android自定義控件eBook實現(xiàn)翻書效果實例詳解

    Android自定義控件eBook實現(xiàn)翻書效果實例詳解

    這篇文章主要介紹了Android自定義控件eBook實現(xiàn)翻書效果的方法,結合實例形式分析了Android自定義控件實現(xiàn)翻書效果的具體步驟與相關操作技巧,需要的朋友可以參考下
    2016-10-10
  • android讀取assets文件示例

    android讀取assets文件示例

    這篇文章主要介紹了android讀取assets文件示例,需要的朋友可以參考下
    2014-02-02
  • Android中ArrayList和數(shù)組相互轉(zhuǎn)換

    Android中ArrayList和數(shù)組相互轉(zhuǎn)換

    在我們?nèi)粘i_發(fā)中難免會要將ArrayList和數(shù)組相互轉(zhuǎn)換,那么如何才能相互轉(zhuǎn)換呢?下面跟著小編一起通過這篇文章學習學習。
    2016-08-08
  • android獲取附近藍牙設備并計算距離的實例代碼

    android獲取附近藍牙設備并計算距離的實例代碼

    下面小編就為大家分享一篇android獲取附近藍牙設備并計算距離的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android開發(fā)之開關按鈕用法示例

    Android開發(fā)之開關按鈕用法示例

    這篇文章主要介紹了Android開發(fā)之開關按鈕用法,結合實例形式分析了Android開關按鈕的具體實現(xiàn)、布局與功能設置相關操作技巧,需要的朋友可以參考下
    2019-04-04
  • 在Android上實現(xiàn)HttpServer的示例代碼

    在Android上實現(xiàn)HttpServer的示例代碼

    本篇文章主要介紹了在Android上實現(xiàn)HttpServer的示例代碼,實現(xiàn)Android本地的微型服務器,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • Android自定義谷歌風格ProgressBar

    Android自定義谷歌風格ProgressBar

    這篇文章主要為大家詳細介紹了Android自定義谷歌風格ProgressBar的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論

法库县| 镇宁| 巴林左旗| 怀柔区| 博爱县| 邛崃市| 西畴县| 天峻县| 西和县| 湟中县| 八宿县| 弥渡县| 垣曲县| 霍城县| 金沙县| 潢川县| 敦化市| 交口县| 洛川县| 九龙县| 大渡口区| 蓬莱市| 婺源县| 吉安市| 庆元县| 长白| 江孜县| 炉霍县| 长岭县| 昂仁县| 定远县| 临洮县| 延寿县| 梁平县| 潞城市| 金沙县| 龙井市| 潜江市| 靖边县| 南和县| 三台县|