dependencies {
implementation( " com.vanniktech:android-image-cropper:4.6.0 " )
}
มี 3 วิธีในการใช้ห้องสมุด ตรวจสอบแอพตัวอย่างสำหรับรายละเอียดทั้งหมด
หมายเหตุ: วิธีนี้เลิกใช้แล้วและจะถูกลบออกในรุ่นอนาคต เส้นทางไปข้างหน้าคือการเขียนกิจกรรมของคุณเองจัดการกับ Uri
ทั้งหมดด้วยตัวคุณเองและใช้ CropImageView
class MainActivity : AppCompatActivity () {
private val cropImage = registerForActivityResult( CropImageContract ()) { result ->
if (result.isSuccessful) {
// Use the cropped image URI.
val croppedImageUri = result.uriContent
val croppedImageFilePath = result.getUriFilePath( this ) // optional usage
// Process the cropped image URI as needed.
} else {
// An error occurred.
val exception = result.error
// Handle the error.
}
}
private fun startCrop () {
// Start cropping activity with guidelines.
cropImage.launch(
CropImageContractOptions (
cropImageOptions = CropImageOptions (
guidelines = Guidelines . ON
)
)
)
// Start cropping activity with gallery picker only.
cropImage.launch(
CropImageContractOptions (
pickImageContractOptions = PickImageContractOptions (
includeGallery = true ,
includeCamera = false
)
)
)
// Start cropping activity for a pre-acquired image with custom settings.
cropImage.launch(
CropImageContractOptions (
uri = imageUri,
cropImageOptions = CropImageOptions (
guidelines = Guidelines . ON ,
outputCompressFormat = Bitmap . CompressFormat . PNG
)
)
)
}
// Call the startCrop function when needed.
}
หมายเหตุ: นี่เป็นวิธีเดียวที่จะส่งต่อ CropImageView
ลงในกิจกรรมของคุณเองและทำสิ่งที่คุณต้องการ ชำระเงินตัวอย่างสำหรับรายละเอียดเพิ่มเติม
<!-- Image Cropper fill the remaining available height -->
< com .canhub.cropper.CropImageView
android : id = " @+id/cropImageView "
android : layout_width = " match_parent "
android : layout_height = " 0dp "
android : layout_weight = " 1 "
/>
cropImageView.setImageUriAsync(uri)
// Or prefer using uri for performance and better user experience.
cropImageView.setImageBitmap(bitmap)
// Subscribe to async event using cropImageView.setOnCropImageCompleteListener(listener)
cropImageView.getCroppedImageAsync()
// Or.
val cropped : Bitmap = cropImageView.getCroppedImage()
หมายเหตุ: วิธีนี้ยังเลิกใช้แล้วและจะถูกลบออกในรุ่นอนาคต เส้นทางไปข้างหน้าคือการเขียนกิจกรรมของคุณเองจัดการกับ Uri
ทั้งหมดด้วยตัวคุณเองและใช้ CropImageView
หากคุณต้องการขยาย CropImageActivity
โปรดทราบว่าคุณจะต้องตั้งค่า CropImageView
ของคุณ
CropImageActivity
ลงใน AndroidManifest.xml ของคุณ <!-- Theme is optional and only needed if default theme has no action bar. -->
< activity
android : name = " com.canhub.cropper.CropImageActivity "
android : theme = " @style/Base.Theme.AppCompat "
/>
CropImageView
ของคุณหลังจากการโทร super.onCreate(savedInstanceState)
override fun onCreate ( savedInstanceState : Bundle ? ) {
super .onCreate(savedInstanceState)
setCropImageView(binding.cropImageView)
}
เมื่อโทรผ่านการครอบตัดโดยตรงไลบรารีจะแจ้งโต้ตอบสำหรับผู้ใช้เลือกระหว่างแกลเลอรี่หรือกล้อง (ถ้าคุณเปิดใช้งานทั้งสอง) เราใช้ Android เริ่มต้น allertDialog สำหรับสิ่งนี้ หากคุณต้องการปรับแต่งด้วยธีมแอปของคุณคุณต้องแทนที่วิธีการ showImageSourceDialog(..)
เมื่อขยายกิจกรรม (ด้านบน)
override fun showImageSourceDialog ( openSource : ( Source ) -> Unit ) {
super .showImageSourceDialog(openCamera)
}
เริ่มต้นด้วยการใช้เวอร์ชัน 4.3.3:
dependencies {
implementation( " com.vanniktech:android-image-cropper:4.3.3 " )
}
- import com.theartofdev.edmodo.cropper.CropImage
- import com.theartofdev.edmodo.cropper.CropImageActivity
+ import com.canhub.cropper.CropImage
+ import com.canhub.cropper.CropImageActivity
- <com.theartofdev.edmodo.cropper.CropImageView
+ <com.canhub.cropper.CropImageView
เมื่อใช้สัญญากิจกรรมให้ปรึกษากับแอพตัวอย่างเกี่ยวกับวิธีการใช้สัญญากิจกรรมของเราตั้งแต่ onActivityResult
เลิกใช้แล้ว
เวอร์ชันหลังจาก 4.3.3 ได้เปลี่ยน APIs ค่อนข้างน้อยควรอัพเกรดเป็นรุ่นรองแต่ละรุ่นแยกการใช้งาน API ที่เลิกใช้แล้วและอัพเกรดต่อไป ดังนั้นหลังจากใช้ 4.3.3 อัพเกรดเป็น 4.4.0 อัพเกรดเป็น 4.5.0, 4.6.0 ฯลฯ
แยกจาก Arthurhub เดิมจาก Edmodo/Cropper
ลิขสิทธิ์ 2016, Arthur Teplitzki, 2013, Edmodo, Inc.
ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 ("ใบอนุญาต"); คุณไม่สามารถใช้งานนี้ยกเว้นตามใบอนุญาต คุณสามารถรับสำเนาใบอนุญาตในไฟล์ใบอนุญาตหรือที่:
http://www.apache.org/licenses/license-2.0
เว้นแต่ว่ากฎหมายที่บังคับใช้หรือตกลงเป็นลายลักษณ์อักษรซอฟต์แวร์ที่แจกจ่ายภายใต้ใบอนุญาตจะถูกแจกจ่ายตาม "ตามพื้นฐาน" โดยไม่มีการรับประกันหรือเงื่อนไขใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัย ดูใบอนุญาตสำหรับภาษาเฉพาะที่ควบคุมการอนุญาตและข้อ จำกัด ภายใต้ใบอนุญาต