Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
scanqrwhite2copy1
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
scanqrwhite2copy1
Commits
db71488a
Commit
db71488a
authored
Feb 12, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
aa1326d8
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
51 additions
and
25 deletions
+51
-25
ExportPdfActivity.kt
...va/com/base/scanqrclear/ui/exportpdf/ExportPdfActivity.kt
+18
-5
WifiCodeActivity.kt
...ain/java/com/base/scanqrclear/ui/wifi/WifiCodeActivity.kt
+23
-16
ExportPdf.kt
app/src/main/java/com/base/scanqrclear/utils/ExportPdf.kt
+9
-3
activity_export_pdf.xml
app/src/main/res/layout/activity_export_pdf.xml
+1
-0
activity_wifi_code.xml
app/src/main/res/layout/activity_wifi_code.xml
+0
-1
No files found.
app/src/main/java/com/base/scanqrclear/ui/exportpdf/ExportPdfActivity.kt
View file @
db71488a
...
...
@@ -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
,
qrString
Array
,
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")
}
}
...
...
app/src/main/java/com/base/scanqrclear/ui/wifi/WifiCodeActivity.kt
View file @
db71488a
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
()
}
}
...
...
app/src/main/java/com/base/scanqrclear/utils/ExportPdf.kt
View file @
db71488a
...
...
@@ -14,7 +14,7 @@ object ExportPdf {
file
:
File
,
bitmap
:
Bitmap
,
qrType
:
String
,
qrString
:
String
,
qrString
s
:
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
)
...
...
app/src/main/res/layout/activity_export_pdf.xml
View file @
db71488a
...
...
@@ -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"
/>
...
...
app/src/main/res/layout/activity_wifi_code.xml
View file @
db71488a
...
...
@@ -285,7 +285,6 @@
android:layout_weight=
"1"
android:gravity=
"center"
android:orientation=
"vertical"
android:visibility=
"gone"
tools:ignore=
"UseCompoundDrawables"
>
<ImageView
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment