Fix compilation errors: OutputFileOptions constructor, composeImages method name, StaticLayout TextPaint, add missing imports
This commit is contained in:
@@ -30,6 +30,7 @@ import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.io.OutputStream
|
||||
import java.text.SimpleDateFormat
|
||||
@@ -198,7 +199,13 @@ class CameraActivity : AppCompatActivity() {
|
||||
val contentResolver = contentResolver
|
||||
val uri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
|
||||
|
||||
return ImageCapture.OutputFileOptions.Builder(contentResolver, uri).build()
|
||||
return if (uri != null) {
|
||||
ImageCapture.OutputFileOptions.Builder(contentResolver, uri).build()
|
||||
} else {
|
||||
// 如果插入失败,创建一个临时文件
|
||||
val file = File.createTempFile("巡检_$timestamp", ".jpg", cacheDir)
|
||||
ImageCapture.OutputFileOptions.Builder(file).build()
|
||||
}
|
||||
}
|
||||
|
||||
private fun showPhotoPreview(uri: Uri) {
|
||||
@@ -262,8 +269,10 @@ class CameraActivity : AppCompatActivity() {
|
||||
return
|
||||
}
|
||||
|
||||
// 合成图片
|
||||
val composedBitmap = compositor.composeImages(bitmaps, "巡检报告", "合成时间: ${Date()}")
|
||||
// 合成图片到2x2网格
|
||||
val composedGrid = compositor.composeImagesToGrid(bitmaps, 1200, 1600)
|
||||
// 添加文字叠加
|
||||
val composedBitmap = compositor.addTextOverlay(composedGrid, "巡检报告", "合成时间: ${Date()}")
|
||||
|
||||
// 保存合成图片
|
||||
val timestamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.example.app
|
||||
import android.graphics.*
|
||||
import android.text.StaticLayout
|
||||
import android.text.Layout
|
||||
import android.text.TextPaint
|
||||
import java.io.File
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
@@ -115,9 +116,10 @@ class ImageCompositor {
|
||||
paint: Paint,
|
||||
maxHeight: Int
|
||||
) {
|
||||
val textPaint = TextPaint(paint)
|
||||
val staticLayout = StaticLayout.Builder
|
||||
.obtain(text, 0, text.length,
|
||||
paint, (canvas.width * 0.9).toInt())
|
||||
textPaint, (canvas.width * 0.9).toInt())
|
||||
.setMaxLines(5) // 限制最大行数
|
||||
.setAlignment(Layout.Alignment.ALIGN_CENTER)
|
||||
.build()
|
||||
|
||||
Reference in New Issue
Block a user