Commit db71488a authored by wanglei's avatar wanglei

...

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