mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-04-25 12:38:46 +02:00
sort camera preview sizes differently
This commit is contained in:
parent
0eed22d749
commit
2e43f53af2
@ -24,7 +24,6 @@ import com.simplemobiletools.commons.extensions.scanPath
|
|||||||
import com.simplemobiletools.commons.extensions.toast
|
import com.simplemobiletools.commons.extensions.toast
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.Serializable
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScanCompletedListener {
|
class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScanCompletedListener {
|
||||||
@ -134,7 +133,7 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
mMaxZoom = mParameters!!.maxZoom
|
mMaxZoom = mParameters!!.maxZoom
|
||||||
mZoomRatios = mParameters!!.zoomRatios
|
mZoomRatios = mParameters!!.zoomRatios
|
||||||
mSupportedPreviewSizes = mParameters!!.supportedPreviewSizes
|
mSupportedPreviewSizes = mParameters!!.supportedPreviewSizes
|
||||||
Collections.sort<Camera.Size>(mSupportedPreviewSizes!!, SizesComparator())
|
storePreviewSizes()
|
||||||
requestLayout()
|
requestLayout()
|
||||||
invalidate()
|
invalidate()
|
||||||
mSetupPreviewAfterMeasure = true
|
mSetupPreviewAfterMeasure = true
|
||||||
@ -165,6 +164,10 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun storePreviewSizes() {
|
||||||
|
mSupportedPreviewSizes = mSupportedPreviewSizes!!.sortedByDescending { it.width * it.height }
|
||||||
|
}
|
||||||
|
|
||||||
fun setTargetUri(uri: Uri) {
|
fun setTargetUri(uri: Uri) {
|
||||||
mTargetUri = uri
|
mTargetUri = uri
|
||||||
}
|
}
|
||||||
@ -455,9 +458,7 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
return false
|
return false
|
||||||
|
|
||||||
mSwitchToVideoAsap = false
|
mSwitchToVideoAsap = false
|
||||||
val previewSizes = mParameters!!.supportedPreviewSizes
|
val preferred = mSupportedPreviewSizes!![0]
|
||||||
Collections.sort<Camera.Size>(previewSizes, SizesComparator())
|
|
||||||
val preferred = previewSizes[0]
|
|
||||||
|
|
||||||
mParameters!!.setPreviewSize(preferred.width, preferred.height)
|
mParameters!!.setPreviewSize(preferred.width, preferred.height)
|
||||||
mCamera!!.parameters = mParameters
|
mCamera!!.parameters = mParameters
|
||||||
@ -618,17 +619,6 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
|
|||||||
return size
|
return size
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SizesComparator : Comparator<Camera.Size>, Serializable {
|
|
||||||
|
|
||||||
override fun compare(a: Camera.Size, b: Camera.Size): Int {
|
|
||||||
return b.width * b.height - a.width * a.height
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
private const val serialVersionUID = 5431278455314658485L
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface PreviewListener {
|
interface PreviewListener {
|
||||||
fun setFlashAvailable(available: Boolean)
|
fun setFlashAvailable(available: Boolean)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user