首页 > 解决方案 > 将点添加到 PDF Android

问题描述

我目前正在使用 AndroidPDFViewer 在 Android 上开发应用程序:

我想创建一个功能,当用户触摸屏幕时,它会在 PDF 上的这个位置放置一个点。在我想测量两点之间的距离之后,这是另一个问题。我不明白如何执行此功能,请在 PDF 上指出一点。我发现了这个:https ://github.com/barteksc/AndroidPdfViewer/issues/554 所以这是可能的,但如何?我不明白。我想我需要创建一个位图。

目前,我有这个:`override fun onCreate(savedInstanceState: Bundle?) {

    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_pdf)
    val pdfName = intent.getStringExtra("pdfName")
    openPdf(pdfName)


    mLayout = findViewById(R.id.framelayout);
    l = findViewById<RelativeLayout>(R.id.rl)
    child = l?.getChildAt(1)!!

    child?.isEnabled = false

    var mesureButton = findViewById<ImageButton>(R.id.mesureButton)
    mesureButton.setOnClickListener{
        child?.isEnabled = true
        val bitmap: Bitmap= Bitmap.createBitmap(child?.width!!, child?.height!!, Bitmap.Config.ARGB_8888)
        val canvas: Canvas = Canvas(bitmap)
        var shapeDrawable: ShapeDrawable
        shapeDrawable = ShapeDrawable(RectShape())
        shapeDrawable.setBounds(100, 100, 200, 200)
        shapeDrawable.paint.color = Color.parseColor("#009944")
        shapeDrawable.draw(canvas)
        (child as ImageView)?.setImageBitmap(bitmap)
        shapeDrawable = ShapeDrawable(OvalShape())
        shapeDrawable.setBounds(600, 600, 650, 650)
        shapeDrawable.paint.color = Color.parseColor("#009944")
        shapeDrawable.draw(canvas)
        (child as ImageView)?.setImageBitmap(bitmap)
        child?.isEnabled = false

    }


fun openPdf(pdfName: String) {
    pdf = findViewById(R.id.pdf) as PDFView
    val f = File(pdfName)
    pdf?.fromFile(f)!!.load()`

在这里,当我按下按钮时,我绘制了 2 个形状进行测试,但形状没有停留在 pdf 的正确位置。当我滚动时,它会移动。

我花了一周的时间在上面搜索,但我不明白。而且我不能使用https://github.com/barteksc/PdfiumAndroid来获取图像,因为当我放大它时,它是模糊的。我很绝望啊啊啊。谢谢你的时间。

标签: javaandroidpdfkotlindraw

解决方案


推荐阅读