From cb1482e6fbfeea4a479962ddf9e6e4f7b441d966 Mon Sep 17 00:00:00 2001 From: xiajiid Date: Sun, 8 Feb 2026 16:43:39 +0800 Subject: [PATCH] Fix compilation errors: OutputFileOptions constructor, composeImages method name, StaticLayout TextPaint, add missing imports --- .../main/java/com/example/app/CameraActivity.kt | 15 ++++++++++++--- .../main/java/com/example/app/ImageCompositor.kt | 4 +++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/app/CameraActivity.kt b/app/src/main/java/com/example/app/CameraActivity.kt index 66f3563..0da3256 100644 --- a/app/src/main/java/com/example/app/CameraActivity.kt +++ b/app/src/main/java/com/example/app/CameraActivity.kt @@ -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()) diff --git a/app/src/main/java/com/example/app/ImageCompositor.kt b/app/src/main/java/com/example/app/ImageCompositor.kt index fe47b02..d9791c8 100644 --- a/app/src/main/java/com/example/app/ImageCompositor.kt +++ b/app/src/main/java/com/example/app/ImageCompositor.kt @@ -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()