Commit db71488a authored by wanglei's avatar wanglei

...

parent aa1326d8
...@@ -13,6 +13,7 @@ import com.base.scanqrclear.ads.AdsMgr ...@@ -13,6 +13,7 @@ import com.base.scanqrclear.ads.AdsMgr
import com.base.scanqrclear.base.BaseActivity import com.base.scanqrclear.base.BaseActivity
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_PRODUCT import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_PRODUCT
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_TEXT import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_TEXT
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WIFI
import com.base.scanqrclear.databinding.ActivityExportPdfBinding import com.base.scanqrclear.databinding.ActivityExportPdfBinding
import com.base.scanqrclear.utils.BarUtils import com.base.scanqrclear.utils.BarUtils
import com.base.scanqrclear.utils.ExportPdf.generatePdfWithTextAndImage import com.base.scanqrclear.utils.ExportPdf.generatePdfWithTextAndImage
...@@ -29,6 +30,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP ...@@ -29,6 +30,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
private var qrType: String = KEY_TEXT private var qrType: String = KEY_TEXT
private var qrString: String = "" private var qrString: String = ""
private var qrStringArray: Array<String> = arrayOf()
private var pdfQrName: String = "" private var pdfQrName: String = ""
private var pdfTempFile: File? = null private var pdfTempFile: File? = null
...@@ -43,12 +45,23 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP ...@@ -43,12 +45,23 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
AdsMgr.showBanner(binding.flBanner, false) AdsMgr.showBanner(binding.flBanner, false)
when (qrType) { when (qrType) {
KEY_TEXT -> { KEY_TEXT -> {
pdfQrName = "QR_TEXT" pdfQrName = "QR_TEXT"
binding.tvQrType.text = "QR_TEXT" binding.tvQrType.text = "QR_TEXT"
binding.tvQr.text = qrString binding.tvQr.text = qrString
qrStringArray = arrayOf(qrString)
generateQRCode()
}
KEY_WIFI -> {
pdfQrName = "QR_WIFI"
binding.tvQrType.text = "QR_WIFI"
val content = qrString.replace(";", "\n")
binding.tvQr.text = content
qrStringArray = content.split("\n").toTypedArray()
generateQRCode() generateQRCode()
} }
...@@ -56,6 +69,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP ...@@ -56,6 +69,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
pdfQrName = "QR_PRODUCT" pdfQrName = "QR_PRODUCT"
binding.tvQrType.text = "QR_PRODUCT" binding.tvQrType.text = "QR_PRODUCT"
binding.tvQr.text = qrString binding.tvQr.text = qrString
qrStringArray = arrayOf(qrString)
val newWidth = this.resources.getDimensionPixelSize(R.dimen.dp_260) val newWidth = this.resources.getDimensionPixelSize(R.dimen.dp_260)
val newHeight = this.resources.getDimensionPixelSize(R.dimen.dp_155) val newHeight = this.resources.getDimensionPixelSize(R.dimen.dp_155)
...@@ -68,6 +82,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP ...@@ -68,6 +82,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
} }
} }
fun generateQRCode() { fun generateQRCode() {
Thread { Thread {
val bitmap = generateQRCode(qrString, 735, 735, 5) val bitmap = generateQRCode(qrString, 735, 735, 5)
...@@ -98,7 +113,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP ...@@ -98,7 +113,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
true true
) )
val flag = generatePdfWithTextAndImage(tempPdf, scaledBitmap, qrType, qrString, margin) val flag = generatePdfWithTextAndImage(tempPdf, scaledBitmap, qrType, qrStringArray, margin)
if (flag) { if (flag) {
LogEx.logDebug(TAG, "${tempPdf.absoluteFile}") LogEx.logDebug(TAG, "${tempPdf.absoluteFile}")
pdfTempFile = tempPdf pdfTempFile = tempPdf
...@@ -143,6 +158,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP ...@@ -143,6 +158,7 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
} }
ips.close() ips.close()
ops?.close() ops?.close()
file.delete()
runOnUiThread { runOnUiThread {
toast("save pdf success", true) toast("save pdf success", true)
} }
...@@ -156,9 +172,6 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP ...@@ -156,9 +172,6 @@ class ExportPdfActivity : BaseActivity<ActivityExportPdfBinding>(ActivityExportP
immersionBar { immersionBar {
statusBarColor("#FFFFFFFF") statusBarColor("#FFFFFFFF")
statusBarDarkFont(false) statusBarDarkFont(false)
// navigationBarDarkIcon(true)
// fitsSystemWindows(true)
// navigationBarColor("#FFFFFFFF")
} }
} }
......
package com.base.scanqrclear.ui.wifi package com.base.scanqrclear.ui.wifi
import android.content.Intent
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
...@@ -8,10 +9,13 @@ import com.base.scanqrclear.ads.AdsMgr ...@@ -8,10 +9,13 @@ import com.base.scanqrclear.ads.AdsMgr
import com.base.scanqrclear.ads.AdsShowCallBack import com.base.scanqrclear.ads.AdsShowCallBack
import com.base.scanqrclear.base.BaseActivity import com.base.scanqrclear.base.BaseActivity
import com.base.scanqrclear.bean.FunctionUIBean import com.base.scanqrclear.bean.FunctionUIBean
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_PRODUCT
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_WIFI
import com.base.scanqrclear.bean.WifiUIBean import com.base.scanqrclear.bean.WifiUIBean
import com.base.scanqrclear.bean.WifiUIBean.Companion.createWifiQRString import com.base.scanqrclear.bean.WifiUIBean.Companion.createWifiQRString
import com.base.scanqrclear.bean.config.AdConfigBean import com.base.scanqrclear.bean.config.AdConfigBean
import com.base.scanqrclear.databinding.ActivityWifiCodeBinding import com.base.scanqrclear.databinding.ActivityWifiCodeBinding
import com.base.scanqrclear.ui.exportpdf.ExportPdfActivity
import com.base.scanqrclear.ui.vm.QrViewModel import com.base.scanqrclear.ui.vm.QrViewModel
import com.base.scanqrclear.ui.widget.InputNameDialog.showInputNameDialog import com.base.scanqrclear.ui.widget.InputNameDialog.showInputNameDialog
import com.base.scanqrclear.utils.BarUtils import com.base.scanqrclear.utils.BarUtils
...@@ -126,7 +130,10 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB ...@@ -126,7 +130,10 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB
} }
} }
binding.llPdf.setOnClickListener { binding.llPdf.setOnClickListener {
toast("没有做") startActivity(Intent(this, ExportPdfActivity::class.java).apply {
putExtra("qrType", KEY_WIFI)
putExtra("qrString", qrString)
})
} }
binding.llDownload.setOnClickListener { binding.llDownload.setOnClickListener {
if (AdConfigBean.adsConfigBean.functionUseShowAd) { if (AdConfigBean.adsConfigBean.functionUseShowAd) {
...@@ -152,8 +159,8 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB ...@@ -152,8 +159,8 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB
toast("Copied to clipboard", true) toast("Copied to clipboard", true)
} }
binding.flSearch.setOnClickListener { binding.flSearch.setOnClickListener {
if (AdConfigBean.adsConfigBean.functionUseShowAd){ if (AdConfigBean.adsConfigBean.functionUseShowAd) {
AdsMgr.showInsert(this,true,object :AdsShowCallBack(){ AdsMgr.showInsert(this, true, object : AdsShowCallBack() {
override fun close(where: Int) { override fun close(where: Int) {
useSearch() useSearch()
} }
...@@ -166,7 +173,7 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB ...@@ -166,7 +173,7 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB
useSearch() useSearch()
} }
}) })
}else{ } else {
useSearch() useSearch()
} }
} }
......
...@@ -14,7 +14,7 @@ object ExportPdf { ...@@ -14,7 +14,7 @@ object ExportPdf {
file: File, file: File,
bitmap: Bitmap, bitmap: Bitmap,
qrType: String, qrType: String,
qrString: String, qrStrings: Array<String>,
marginVertical: Float = 50f marginVertical: Float = 50f
): Boolean { ): Boolean {
// A4纸张大小(单位:点,1英寸=72点) // A4纸张大小(单位:点,1英寸=72点)
...@@ -49,8 +49,14 @@ object ExportPdf { ...@@ -49,8 +49,14 @@ object ExportPdf {
canvas.drawText(qrType, pageWidth / 2f, textTopY, paint) canvas.drawText(qrType, pageWidth / 2f, textTopY, paint)
// 计算底部文本的绘制位置 // 计算底部文本的绘制位置
val textBottomY = imageY + imageHeight + marginVertical - paint.descent() // 图片下方50点 var currentY = imageY + imageHeight + marginVertical // 图片下方起始位置
canvas.drawText(qrString, pageWidth / 2f, textBottomY + 25f, paint) val lineHeight = paint.textSize + 10f // 行高(文本大小 + 间距)
// 遍历字符串数组,逐行绘制
for (line in qrStrings) {
canvas.drawText(line, pageWidth / 2f, currentY - paint.descent(), paint)
currentY += lineHeight // 更新下一行的垂直位置
}
// 完成页面绘制 // 完成页面绘制
pdfDocument.finishPage(page) pdfDocument.finishPage(page)
......
...@@ -70,6 +70,7 @@ ...@@ -70,6 +70,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:gravity="center"
android:textColor="#000000" android:textColor="#000000"
android:textSize="16sp" android:textSize="16sp"
tools:text="6922858201399" /> tools:text="6922858201399" />
......
...@@ -285,7 +285,6 @@ ...@@ -285,7 +285,6 @@
android:layout_weight="1" android:layout_weight="1"
android:gravity="center" android:gravity="center"
android:orientation="vertical" android:orientation="vertical"
android:visibility="gone"
tools:ignore="UseCompoundDrawables"> tools:ignore="UseCompoundDrawables">
<ImageView <ImageView
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment