package com.example.smart.ui.icondraw
|
|
import android.app.Activity
|
import android.graphics.Bitmap
|
import android.net.Uri
|
import android.os.Bundle
|
import android.widget.Button
|
import android.widget.ImageView
|
import androidx.appcompat.app.AppCompatActivity
|
import com.bumptech.glide.Glide
|
import com.example.basecore.util.ImageUtils
|
import com.example.basecore.util.showCenterToast
|
import com.example.smart.R
|
import com.example.smart.bean.ImageRef
|
import com.example.smart.image.ImageProvider
|
import com.example.smart.bean.ImageDrawData
|
import ja.burhanrashid52.photoeditor.PhotoEditor
|
import ja.burhanrashid52.photoeditor.PhotoEditorView
|
import ja.burhanrashid52.photoeditor.shape.ShapeBuilder
|
import ja.burhanrashid52.photoeditor.shape.ShapeType
|
import java.io.File
|
|
class PhotoEditorActivity : AppCompatActivity() {
|
|
private lateinit var photoEditor: PhotoEditor
|
private lateinit var photoEditorView: PhotoEditorView
|
private lateinit var saveButton: Button
|
private lateinit var mImageProvider: ImageProvider
|
private lateinit var path: String
|
private lateinit var id: String
|
|
private inner class ImageCallBack : ImageProvider.IImageCallback {
|
override fun onUploadSuccess(entityRef: List<ImageRef>) {
|
// entityRef.forEach {
|
// //此处path 被使用为id
|
// ImageDrawData.onDataChange(ImageDrawData(it.id, id, it.name))
|
// finish()
|
// }
|
}
|
|
override fun onUploadFailed() {
|
showCenterToast("图片上传失败,请稍后再试...")
|
}
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setContentView(R.layout.activity_photo_editor)
|
|
photoEditorView = findViewById(R.id.photoEditorView)
|
saveButton = findViewById(R.id.btnSave)
|
|
photoEditorView.source.setImageResource(R.drawable.shape_exclude_bg)
|
|
photoEditor = PhotoEditor.Builder(this, photoEditorView)
|
.setPinchTextScalable(true)
|
.build()
|
|
photoEditor.setBrushDrawingMode(true)
|
|
mImageProvider = ImageProvider(this as Activity, ImageCallBack())
|
|
path = intent.getStringExtra("path") ?: ""
|
id = intent.getStringExtra("id") ?: ""
|
|
val imageView: ImageView = findViewById(R.id.imageView)
|
// 从网络加载图片
|
Glide.with(this)
|
.load(Uri.parse(path))
|
.into(imageView)
|
|
findViewById<Button>(R.id.btnBrush).setOnClickListener {
|
photoEditor.setBrushDrawingMode(true)
|
}
|
|
findViewById<Button>(R.id.btnEraser).setOnClickListener {
|
photoEditor.brushEraser()
|
}
|
|
findViewById<Button>(R.id.btnText).setOnClickListener {
|
// photoEditor.addText("Sample Text", 0xFF000000.toInt())
|
// add shape
|
val shapeBuilder = ShapeBuilder()
|
.withShapeOpacity(100)
|
.withShapeType(ShapeType.Oval)
|
.withShapeSize(50f)
|
|
photoEditor.setShape(shapeBuilder)
|
}
|
|
saveButton.setOnClickListener {
|
saveImage()
|
}
|
}
|
|
private fun saveImage() {
|
val file = File(externalCacheDir, "edited_image.png")
|
photoEditor.saveAsFile(file.absolutePath, object : PhotoEditor.OnSaveListener {
|
override fun onSuccess(imagePath: String) {
|
val uri = ImageUtils.getUriByView(this@PhotoEditorActivity, photoEditorView)
|
uri?.let {
|
if (::mImageProvider.isInitialized) {
|
mImageProvider.uploadPicAfterDraw(it)
|
}
|
}
|
}
|
|
override fun onFailure(exception: Exception) {
|
showCenterToast("图片保存失败,请稍后再试...")
|
}
|
})
|
}
|
}
|