android pdfviewer/片段 [英] android pdfviewer / fragment
本文介绍了android pdfviewer/片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
417/5000你好
417/5000 Hello
我有一个效果很好的pdfview,因为我不能将其添加到我使用的片段中:
I have a pdfview that works perfectly, for against it I can not add it to a fragment I use:
-
实现'com.github.barteksc:android-pdf-viewer:2.8.2'
-
实现'com.github.barteksc:android-pdf-viewer:3.1.0-beta 1'
这是我的pdfview和片段的代码
Here is the code of my pdfview and my fragment
public class magasineFragment extends Fragment {
public static magasineFragment newInstance() {
magasineFragment fragment = new magasineFragment();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.pdf_fragment, container, false);
return view;
}
}
下一个pdf.class
next pdf.class
class pdf : AppCompatActivity() {
internal lateinit var pdfView:PDFView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.pdf)
pdfView = findViewById(R.id.pdfView) as PDFView
RetrivePdfStream().execute("http://www.marseillemairie11-12.fr/fileadmin/Images/documents/kiosque/lemag-jan2019.pdf")
}
internal inner class RetrivePdfStream : AsyncTask<String, Void, InputStream>()
{
override fun doInBackground(vararg strings: String): InputStream? {
var inputStream: InputStream? = null
try {
val url = URL(strings[0])
val urlConnection = url.openConnection() as HttpURLConnection
if (urlConnection.responseCode == 200) {
inputStream = BufferedInputStream(urlConnection.inputStream)
}
} catch (e: IOException) {
return null
}
return inputStream
}
override fun onPostExecute(inputStream: InputStream) {
pdfView.fromStream(inputStream).load()
}
}
}
推荐答案
-
我希望这对您有帮助
I hope this help you
Kotlin中的此代码从Assets文件夹中读取PDF文件
this code in Kotlin read PDF file from Assets folder
并显示在片段中
class PdfRendererBasicFragment : Fragment(), View.OnClickListener { private val FILENAME = "table.pdf" private val STATE_CURRENT_PAGE_INDEX = "current_page_index" private val TAG = "PdfRendererBasicFragment" private val INITIAL_PAGE_INDEX = 0 private lateinit var fileDescriptor: ParcelFileDescriptor private lateinit var pdfRenderer: PdfRenderer private lateinit var currentPage: PdfRenderer.Page private lateinit var imageView: ImageView private lateinit var btnPrevious: Button private lateinit var btnNext: Button private var pageIndex: Int = INITIAL_PAGE_INDEX override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { return inflater.inflate(R.layout.fragment_pdf_renderer_basic, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) imageView = view.findViewById(R.id.image) btnPrevious = view.findViewById<Button>(R.id.previous).also { it.setOnClickListener(this) } btnNext = view.findViewById<Button>(R.id.next).also { it.setOnClickListener(this)} if (savedInstanceState != null) { pageIndex = savedInstanceState.getInt(STATE_CURRENT_PAGE_INDEX, INITIAL_PAGE_INDEX) } else { pageIndex = INITIAL_PAGE_INDEX } } @SuppressLint("LongLogTag") override fun onStart() { super.onStart() try { openRenderer(activity) showPage(pageIndex) } catch (e: IOException) { Log.d(TAG, e.toString()) } } @SuppressLint("LongLogTag") override fun onStop() { try { closeRenderer() } catch (e: IOException) { Log.d(TAG, e.toString()) } super.onStop() } override fun onSaveInstanceState(outState: Bundle) { outState.putInt(STATE_CURRENT_PAGE_INDEX, currentPage.index) super.onSaveInstanceState(outState) } @Throws(IOException::class) private fun openRenderer(context: Context?) { if (context == null) return val file = File(context.cacheDir, FILENAME) if (!file.exists()) { val asset = context.assets.open(FILENAME) val output = FileOutputStream(file) val buffer = ByteArray(1024) var size = asset.read(buffer) while (size != -1) { output.write(buffer, 0, size) size = asset.read(buffer) } asset.close() output.close() } fileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY) pdfRenderer = PdfRenderer(fileDescriptor) currentPage = pdfRenderer.openPage(pageIndex) } @Throws(IOException::class) private fun closeRenderer() { currentPage.close() pdfRenderer.close() fileDescriptor.close() } private fun showPage(index: Int) { if (pdfRenderer.pageCount <= index) return currentPage.close() currentPage = pdfRenderer.openPage(index) val bitmap = createBitmap(currentPage.width, currentPage.height, Bitmap.Config.ARGB_8888) currentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY) imageView.setImageBitmap(bitmap) updateUi() } private fun updateUi() { val index = currentPage.index val pageCount = pdfRenderer.pageCount btnPrevious.isEnabled = (0 != index) btnNext.isEnabled = (index + 1 < pageCount) } fun getPageCount() = pdfRenderer.pageCount override fun onClick(view: View) { when (view.id) { R.id.previous -> { showPage(currentPage.index - 1) } R.id.next -> { showPage(currentPage.index + 1) } } } }
这篇关于android pdfviewer/片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文