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 androidx.core.content.ContextCompat
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
@@ -198,7 +199,13 @@ class CameraActivity : AppCompatActivity() {
|
|||||||
val contentResolver = contentResolver
|
val contentResolver = contentResolver
|
||||||
val uri = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
|
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) {
|
private fun showPhotoPreview(uri: Uri) {
|
||||||
@@ -262,8 +269,10 @@ class CameraActivity : AppCompatActivity() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 合成图片
|
// 合成图片到2x2网格
|
||||||
val composedBitmap = compositor.composeImages(bitmaps, "巡检报告", "合成时间: ${Date()}")
|
val composedGrid = compositor.composeImagesToGrid(bitmaps, 1200, 1600)
|
||||||
|
// 添加文字叠加
|
||||||
|
val composedBitmap = compositor.addTextOverlay(composedGrid, "巡检报告", "合成时间: ${Date()}")
|
||||||
|
|
||||||
// 保存合成图片
|
// 保存合成图片
|
||||||
val timestamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
val timestamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.example.app
|
|||||||
import android.graphics.*
|
import android.graphics.*
|
||||||
import android.text.StaticLayout
|
import android.text.StaticLayout
|
||||||
import android.text.Layout
|
import android.text.Layout
|
||||||
|
import android.text.TextPaint
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -115,9 +116,10 @@ class ImageCompositor {
|
|||||||
paint: Paint,
|
paint: Paint,
|
||||||
maxHeight: Int
|
maxHeight: Int
|
||||||
) {
|
) {
|
||||||
|
val textPaint = TextPaint(paint)
|
||||||
val staticLayout = StaticLayout.Builder
|
val staticLayout = StaticLayout.Builder
|
||||||
.obtain(text, 0, text.length,
|
.obtain(text, 0, text.length,
|
||||||
paint, (canvas.width * 0.9).toInt())
|
textPaint, (canvas.width * 0.9).toInt())
|
||||||
.setMaxLines(5) // 限制最大行数
|
.setMaxLines(5) // 限制最大行数
|
||||||
.setAlignment(Layout.Alignment.ALIGN_CENTER)
|
.setAlignment(Layout.Alignment.ALIGN_CENTER)
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
Reference in New Issue
Block a user