This commit is contained in:
yuqian 2025-12-24 14:06:44 +08:00
parent b760e154a4
commit a7a0d45d9b
3 changed files with 47 additions and 18 deletions

View File

@ -0,0 +1,10 @@
package com.xyzshell.myphoneinfo.custom
object SetNumberUtils {
fun setDecimal1(double: Double): String{
return "%.1f".format(double)
}
fun setDecimal0(double: Double): String{
return double.toInt().toString()
}
}

View File

@ -10,6 +10,8 @@ import androidx.fragment.app.FragmentContainer
import com.google.android.material.textview.MaterialTextView
import com.xyzshell.andinfo.AndInfo
import com.xyzshell.myphoneinfo.R
import com.xyzshell.myphoneinfo.custom.SetNumberUtils.setDecimal0
import com.xyzshell.myphoneinfo.custom.SetNumberUtils.setDecimal1
import com.xyzshell.myphoneinfo.databinding.FragmentCameraBinding
import com.xyzshell.myphoneinfo.databinding.ItemCameraTypeBinding
import com.xyzshell.myphoneinfo.dialog.DialogCameraMore
@ -60,21 +62,10 @@ class CameraFragment : Fragment() {
"FRONT" -> getString(R.string.front_camera_1) + "${index + 1}"
"BACK" -> getString(R.string.rear_camera_1)+"${index + 1}"
else -> "camera ${index + 1}"
else -> "External Camera ${index + 1}"
}
itemBinding.titleCon.text = cameraName
// 3. 设置相机规格参数
cameraInfo.getPixelArraySize(it)?.let { size ->
itemBinding.conText1.text = "${size} MP"
}
cameraInfo.getAvailableApertures(it)?.let { apertures ->
if (apertures.isNotEmpty()) {
itemBinding.conText2.text = "f/${apertures[0]}" // 取第一个光圈值
}
}
// 4. 设置详细信息(使用 include 的文本)
@ -86,9 +77,18 @@ class CameraFragment : Fragment() {
itemBinding.camText6.textTitle.text=getString(R.string.iso_sensitivity_range)
itemBinding.rearCheck2.content.text=getString(R.string.flash)
itemBinding.rearCheck1.content.text=getString(R.string.optical_image_stabilization)
// checkBox2?.text = "光学防抖"
// checkBox2?.isChecked = capabilities?.contains("OPTICAL_IMAGE_STABILIZATION") ?: false
// 设置百万像素
cameraInfo.getMegaPixels(it)?.let { size ->
itemBinding.conText1.text = "${setDecimal1(size)} MP"
}
//光圈值
cameraInfo.getAvailableApertures(it)?.let { apertures ->
if (apertures.isNotEmpty()) {
itemBinding.conText2.text = "f/${apertures[0]}" // 取第一个光圈值
}
}
//像素阵列大小
cameraInfo.getPixelArraySize(it)?.let { size ->
itemBinding.camText1.textContent.text = size
@ -98,18 +98,37 @@ class CameraFragment : Fragment() {
cameraInfo.getSensorPhysicalSize(it)?.let { size ->
itemBinding.camText2.textContent.text=size
}
// 传感器物理尺寸
cameraInfo.getPixelSize(it)?.let { size ->
itemBinding.camText3.textContent.text="${setDecimal0(size)}μm"
}
// 35mm等效焦距
cameraInfo.getFocal35mmEquivalent(it)?.let { size ->
itemBinding.camText4.textContent.text="${size.toInt()}mm"
}
// 快门速度
cameraInfo.getShutterSpeedRange(it)?.let { size ->
itemBinding.camText5.textContent.text=size
}
// ISO感光范围
cameraInfo.getIsoRange(it)?.let { size ->
itemBinding.camText6.textContent.text=size.lower.toString() + " - " + size.upper.toString()
}
// 光学防抖
cameraInfo.hasOpticalStabilization(it).let { hasOpticalStabilization ->
itemBinding.rearCheck1.image.isSelected=hasOpticalStabilization
}
// 闪光灯
cameraInfo.hasFlashUnit(it)?.let { hasFlash ->
itemBinding.rearCheck2.image.isSelected=hasFlash
}
// 6. 设置"更多"按钮点击事件
itemBinding.rearMore.setOnClickListener {
var dialogCamera0: DialogCameraMore? = null
dialogCamera0= null ?:DialogCameraMore(cameraName)
dialogCamera0= null ?:DialogCameraMore(cameraName,cameraId)
dialogCamera0.show(childFragmentManager, "DialogCameraMore")
}

View File

@ -10,7 +10,7 @@ import com.xyzshell.myphoneinfo.base.BaseDialogFragment
import com.xyzshell.myphoneinfo.databinding.DialogCameraMoreBinding
import com.xyzshell.myphoneinfo.databinding.DialogCpuInfoBinding
class DialogCameraMore(private val name:String) :BaseDialogFragment<DialogCameraMoreBinding>(DialogCameraMoreBinding::inflate){
class DialogCameraMore(private val name:String,private val id:String) :BaseDialogFragment<DialogCameraMoreBinding>(DialogCameraMoreBinding::inflate){
override fun getTitle(): String = name
override fun getIconRes(): Int? =9