package com.sunvote.xpadapp.fragments; import android.annotation.TargetApi; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.util.DisplayMetrics; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.webkit.WebView; import android.widget.Button; import android.widget.ImageButton; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import com.github.barteksc.pdfviewer.PDFView; import com.github.barteksc.pdfviewer.listener.OnRenderListener; import com.sunvote.xpadapp.MainActivity; import com.sunvote.xpadapp.R; import com.sunvote.xpadapp.base.BaseFragment; import com.sunvote.xpadapp.db.modal.BillInfo; import com.sunvote.xpadapp.db.modal.MultiTitleItem; import com.sunvote.xpadapp.db.modal.UIType; import com.sunvote.xpadapp.db.modal.VoteResult; import com.sunvote.xpadapp.utils.SharedPreferencesUtil; import com.sunvote.xpadcomm.XPadApi; import com.sunvote.xpadcomm.XPadApiInterface.VoteInfo; import com.ycanfunc.util.StringUtils; import java.io.File; public class DocumentBrowserDetailFragment extends BaseFragment { private PDFView pdfView; private BillInfo bill; //pdf 页码 public int pdfPageNum = 0; private String filename; private TextView tvTitle; private Button btnLookPdf; private MainActivity mact; public ContentVoteOnBack contentBackListener; private String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); public interface ContentVoteOnBack { void onBack(VoteResult result); } public void setInfo(BillInfo billInfo) { bill = billInfo; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_document_browser_detail, container, false); view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ;// } }); mact = (MainActivity) getActivity(); filename = DATABASE_PATH + "/sunvote/" + mact.meetingId + "/" + bill.billFile; tvTitle = (TextView) view.findViewById(R.id.content_detail_title); if(bill!=null){ if (bill.title != null) { tvTitle.setText(bill.title); } } pdfView = view.findViewById(R.id.content_detail_pdfview); openPdfFile(); btnLookPdf= (Button) view.findViewById(R.id.btn_look_pdf); btnLookPdf.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { pdfPageNum=pdfView.getCurrentPage()+1; //pdfPageNum=pdfView.getCurrentItem()+1; FragmentManager fm = getFragmentManager(); FragmentTransaction tx = fm.beginTransaction(); PDFContextShowFragment pdfShow = new PDFContextShowFragment(); mact.pdfFragment = pdfShow; pdfShow.setInfo(filename, bill.billFile,pdfPageNum + "","0",false); tx.add(R.id.frame_content, pdfShow, "pdfShow"); tx.addToBackStack(null); tx.commitAllowingStateLoss(); } }); ImageButton btnBack = (ImageButton) view.findViewById(R.id.content_detail_btnback); btnBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { goBack(); } }); return view; } private void goBack() { /*if (contentBackListener != null) { VoteResult result=new VoteResult(); contentBackListener.onBack(result); }*/ FragmentManager fm = getFragmentManager(); FragmentTransaction tx = fm.beginTransaction(); tx.remove(DocumentBrowserDetailFragment.this); tx.commit(); } private void openPdfFile(){ File file=new File(filename); if (file.exists()) { pdfView.fromFile(file) .enableSwipe(true) // allows to block changing pages using swipe .swipeHorizontal(false) .enableDoubletap(true) .defaultPage(0) //.onPageChange(onPageChangeListener) .onRender(new OnRenderListener() { @Override public void onInitiallyRendered(int nbPages, float pageWidth, float pageHeight) { pdfView.fitToWidth(pdfPageNum-1); } }) .enableAnnotationRendering(false) .password(null) .scrollHandle(null) .enableAntialiasing(true) .spacing(0) .load(); }else { Toast.makeText(getActivity(),"议案文件未找到",Toast.LENGTH_LONG).show(); } } }