This commit is contained in:
xsean 2025-12-29 11:39:23 +08:00
commit 264a45f4db
23 changed files with 736 additions and 501 deletions

View File

@ -913,6 +913,30 @@ class CpuInfo {
return sb.toString() return sb.toString()
} }
fun getCpuText():String{//自定义衍生方法
val sb = StringBuilder()
val clusterInfo = getClusterInfo()
if (clusterInfo.bigCoreCount > 0) {
sb.append("大核: ${clusterInfo.bigCoreCount} 个, 最高频率: ${formatFrequency(clusterInfo.bigCoreFreq)}\n")
}
if (clusterInfo.midCoreCount > 0) {
sb.append("中核: ${clusterInfo.midCoreCount} 个, 最高频率: ${formatFrequency(clusterInfo.midCoreFreq)}\n")
}
if (clusterInfo.littleCoreCount > 0) {
sb.append("小核: ${clusterInfo.littleCoreCount} 个, 最高频率: ${formatFrequency(clusterInfo.littleCoreFreq)}\n")
}
return sb.toString()
}
//去重频率
fun getFrequencyText():String {//自定义衍生方法
return getCoreFrequencies()
.map { freq ->
"${formatFrequency(freq.minFreq.toULong() * 1000UL)}-${formatFrequency(freq.maxFreq.toULong() * 1000UL)}"
}
.distinct() // 自动去重
.joinToString("\n") // 每行一个
}
/** /**
* 格式化频率显示 * 格式化频率显示
* @param freqHz 频率Hz * @param freqHz 频率Hz

View File

@ -0,0 +1,91 @@
package com.xyzshell.myphoneinfo.custom
import kotlin.math.abs
object SetNumberOrWordUtils {
fun setDecimal1(double: Double): String{
return "%.1f".format(double)
}
fun setDecimal0(double: Double): String{
return double.toInt().toString()
}
fun toTitleCase(sentence: String): String {
if (sentence.isEmpty()) return ""
val words = sentence.trim().split("\\s+".toRegex()) // 按一个或多个空格分割
return if (words.isNotEmpty()) {
// 第一个单词首字母大写
val firstWord = words[0].lowercase().replaceFirstChar { it.uppercase() }
// 其余单词保持小写
val remainingWords = words.drop(1).joinToString(" ") { it.lowercase() }
if (remainingWords.isNotEmpty()) {
"$firstWord $remainingWords"
} else {
firstWord
}
} else {
""
}
}
/*
将数字加1并转换为字符串
*/
fun convertToStringNormal(string: String): String {
return (Integer.parseInt(string) + 1).toString()
}
/**
* 智能宽高比转换
* 输入width=1080, height=2800
* 输出20:9近似值
*/
fun convertToApproximateAspectRatio(width: Int, height: Int): String {
val isPortrait = height > width
// 总是按横屏计算(宽>高)
val displayWidth = if (isPortrait) height else width
val displayHeight = if (isPortrait) width else height
// 计算实际比例
val actualRatio = displayWidth.toDouble() / displayHeight
// 常见宽高比映射表(比例值 -> 宽高比字符串)
val commonRatios = mapOf(
1.333 to "4:3", // 4:3 = 1.333
1.5 to "3:2", // 3:2 = 1.5
1.6 to "16:10", // 16:10 = 1.6
1.667 to "5:3", // 5:3 = 1.667
1.778 to "16:9", // 16:9 = 1.778
2.0 to "18:9", // 18:9 = 2.0
2.111 to "19:9", // 19:9 = 2.111
2.222 to "20:9", // 20:9 = 2.222 ← 您要的
2.333 to "21:9", // 21:9 = 2.333
2.4 to "24:10", // 24:10 = 2.4
2.5 to "25:10", // 25:10 = 2.5
)
// 找到最接近的常见比例
var closestRatio = "16:9"
var minDifference = Double.MAX_VALUE
for ((ratioValue, ratioStr) in commonRatios) {
val difference = abs(actualRatio - ratioValue)
if (difference < minDifference) {
minDifference = difference
closestRatio = ratioStr
}
}
return closestRatio
}
}

View File

@ -2,10 +2,18 @@ package com.xyzshell.myphoneinfo.dashboard
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.xyzshell.andinfo.AndInfo
import com.xyzshell.andinfo.libs.cpu.models.Processor
import com.xyzshell.myphoneinfo.R import com.xyzshell.myphoneinfo.R
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.convertToStringNormal
import com.xyzshell.myphoneinfo.databinding.ActivityAnalysisBinding import com.xyzshell.myphoneinfo.databinding.ActivityAnalysisBinding
import com.xyzshell.myphoneinfo.databinding.ItemAnalysisBinding
import com.xyzshell.myphoneinfo.databinding.ItemCpuAnalysisBinding
import com.xyzshell.myphoneinfo.dialog.DialogCpuInfo import com.xyzshell.myphoneinfo.dialog.DialogCpuInfo
import kotlin.collections.component1
import kotlin.collections.component2
class AnalysisActivity : AppCompatActivity() { class AnalysisActivity : AppCompatActivity() {
private lateinit var binding: ActivityAnalysisBinding private lateinit var binding: ActivityAnalysisBinding
@ -30,23 +38,73 @@ class AnalysisActivity : AppCompatActivity() {
} }
private fun initText() { private fun initText() {
val cpu = AndInfo.instance.cpu
//processor //processor
binding.proText1.textTitle.text=getString(R.string.hardware) binding.proText1.textTitle.text=getString(R.string.hardware)
binding.proText1.textContent.text=cpu.getProcessorName()
binding.proText2.textTitle.text=getString(R.string.manufacturer) binding.proText2.textTitle.text=getString(R.string.manufacturer)
binding.proText2.textContent.text=cpu.getVendor()
binding.proText3.textTitle.text=getString(R.string.marketing_name) binding.proText3.textTitle.text=getString(R.string.marketing_name)
binding.proText3.textContent.text=cpu.getProcessorName()
binding.proText4.textTitle.text=getString(R.string.process) binding.proText4.textTitle.text=getString(R.string.process)
binding.proText4.textContent.text=cpu.getProcess()
binding.proText5.textTitle.text=getString(R.string.cores) binding.proText5.textTitle.text=getString(R.string.cores)
binding.proText5.textContent.text=cpu.getCoreCount().toString()
binding.proText6.textTitle.text=getString(R.string.CPU) binding.proText6.textTitle.text=getString(R.string.CPU)
binding.proText6.textContent.text=cpu.getAllArchitectures().joinToString()
binding.proText7.textTitle.text=getString(R.string.frequencies) binding.proText7.textTitle.text=getString(R.string.frequencies)
binding.proText7.textContent.text=cpu.getFrequencyText()
binding.proText8.textTitle.text=getString(R.string.architecture) binding.proText8.textTitle.text=getString(R.string.architecture)
binding.proText8.textContent.text=cpu.getArchitecture()
binding.proText9.textTitle.text=getString(R.string.ABI) binding.proText9.textTitle.text=getString(R.string.ABI)
binding.proText9.textContent.text=cpu.getAbi()
binding.proText10.textTitle.text=getString(R.string.supported_ABls) binding.proText10.textTitle.text=getString(R.string.supported_ABls)
binding.proText10.textContent.text=cpu.getSupportedAbis().joinToString()
binding.proText11.textTitle.text=getString(R.string.features) binding.proText11.textTitle.text=getString(R.string.features)
//cluster1 binding.proText11.textContent.text=cpu.getCpuFeatures().joinToString()
binding.clu1Text1.textTitle.text=getString(R.string.type) setCluster()
binding.clu1Text2.textTitle.text=getString(R.string.vendor)
binding.clu1Text3.textTitle.text=getString(R.string.cluster) }
binding.clu1Text4.textTitle.text=getString(R.string.max_frequency)
binding.clu1Text5.textTitle.text=getString(R.string.min_frequency) /**
* 设置集群信息*/
private fun setCluster() {
val groupedProcessors = mutableMapOf<UInt, MutableList<Processor>>()
//给簇分类
AndInfo.instance.cpu.processors.forEach { processor ->
val clusterId = processor.cluster.clusterId
val list = groupedProcessors.getOrPut(clusterId) { mutableListOf() }
list.add(processor)
}
groupedProcessors.forEach { (clusterId, processors) ->
println("集群 $clusterId: ${processors.size} 个处理器")
val itemView= LayoutInflater.from(this).inflate(R.layout.item_analysis,binding.llCluster,false)
val itemBinding = ItemAnalysisBinding.bind(itemView)
itemBinding.cluster1Title.text=getString(R.string.cluster)+convertToStringNormal(clusterId.toString())
val coresRangeList= mutableListOf<String>()
//获取簇范围
processors.forEach { processor ->
coresRangeList.add(processor.core.coreId.toString())
}
processors.forEach { processor ->
//设置每个cpu信息
val itemGroup= LayoutInflater.from(this).inflate(R.layout.item_cpu_analysis,itemBinding.clusterInfo,false)
val itemGroupBinding = ItemCpuAnalysisBinding.bind(itemGroup)
itemGroupBinding.cputitle.text="cpu ${processor.core.coreId}"
itemGroupBinding.clu1Text1.textTitle.text=getString(R.string.type)
itemGroupBinding.clu1Text1.textContent.text=processor.cluster.uarch.toString()
itemGroupBinding.clu1Text2.textTitle.text=getString(R.string.vendor)
itemGroupBinding.clu1Text2.textContent.text=processor.cluster.vendor.toString()
itemGroupBinding.clu1Text3.textTitle.text=getString(R.string.cluster)
itemGroupBinding.clu1Text3.textContent.text="$coresRangeList"
itemGroupBinding.clu1Text4.textTitle.text=getString(R.string.max_frequency)
itemGroupBinding.clu1Text4.textContent.text=processor.cluster.frequency.toString()+" MHz"
itemGroupBinding.clu1Text5.textTitle.text=getString(R.string.min_frequency)
itemBinding.clusterInfo.addView(itemGroup)
println(" CPU${processor.core.coreId}: ${processor.cluster.uarch}")
}
//添加到父容器
binding.llCluster.addView(itemView)
}
} }
} }

View File

@ -1,21 +1,22 @@
package com.xyzshell.myphoneinfo.dashboard package com.xyzshell.myphoneinfo.dashboard
import android.hardware.camera2.CameraCharacteristics
import android.os.Bundle import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.compose.material3.Text
import androidx.fragment.app.FragmentContainer
import com.google.android.material.textview.MaterialTextView
import com.xyzshell.andinfo.AndInfo import com.xyzshell.andinfo.AndInfo
import com.xyzshell.myphoneinfo.R import com.xyzshell.myphoneinfo.R
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.setDecimal0
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.setDecimal1
import com.xyzshell.myphoneinfo.databinding.FragmentCameraBinding import com.xyzshell.myphoneinfo.databinding.FragmentCameraBinding
import com.xyzshell.myphoneinfo.databinding.ItemCameraTypeBinding import com.xyzshell.myphoneinfo.databinding.ItemCameraTypeBinding
import com.xyzshell.myphoneinfo.dialog.DialogCameraMore import com.xyzshell.myphoneinfo.dialog.DialogCameraMore
class CameraFragment : Fragment() { class CameraFragment : Fragment() {
private lateinit var binding:FragmentCameraBinding; private lateinit var binding:FragmentCameraBinding
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -60,21 +61,24 @@ class CameraFragment : Fragment() {
"FRONT" -> getString(R.string.front_camera_1) + "${index + 1}" "FRONT" -> getString(R.string.front_camera_1) + "${index + 1}"
"BACK" -> getString(R.string.rear_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 itemBinding.titleCon.text = cameraName
// 3. 设置相机规格参数 //取第一个相机的视频帧率
if(index==0){
cameraInfo.getPixelArraySize(it)?.let { size -> cameraInfo.getMaxFrameRate(it).let { maxFrameRate->
itemBinding.conText1.text = "${size} MP" binding.video.textTitle.text=getString(R.string.max_frequency)
binding.video.textContent.text=maxFrameRate.toString()+"HZ"
}
cameraInfo.supportsHighSpeedVideo(it).let { hasHighSpeedVideo ->
binding.videoCheck1.image.isSelected=hasHighSpeedVideo
}
cameraInfo.hasVideoStabilization(it).let { hasVideoStabilization ->
binding.videoCheck2.image.isSelected=hasVideoStabilization
}
} }
cameraInfo.getAvailableApertures(it)?.let { apertures ->
if (apertures.isNotEmpty()) {
itemBinding.conText2.text = "f/${apertures[0]}" // 取第一个光圈值
}
}
// 4. 设置详细信息(使用 include 的文本) // 4. 设置详细信息(使用 include 的文本)
@ -86,9 +90,18 @@ class CameraFragment : Fragment() {
itemBinding.camText6.textTitle.text=getString(R.string.iso_sensitivity_range) itemBinding.camText6.textTitle.text=getString(R.string.iso_sensitivity_range)
itemBinding.rearCheck2.content.text=getString(R.string.flash) itemBinding.rearCheck2.content.text=getString(R.string.flash)
itemBinding.rearCheck1.content.text=getString(R.string.optical_image_stabilization) 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 -> cameraInfo.getPixelArraySize(it)?.let { size ->
itemBinding.camText1.textContent.text = size itemBinding.camText1.textContent.text = size
@ -98,18 +111,38 @@ class CameraFragment : Fragment() {
cameraInfo.getSensorPhysicalSize(it)?.let { size -> cameraInfo.getSensorPhysicalSize(it)?.let { size ->
itemBinding.camText2.textContent.text=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 -> cameraInfo.hasFlashUnit(it)?.let { hasFlash ->
itemBinding.rearCheck2.image.isSelected=hasFlash itemBinding.rearCheck2.image.isSelected=hasFlash
} }
// 6. 设置"更多"按钮点击事件 // 6. 设置"更多"按钮点击事件
itemBinding.rearMore.setOnClickListener { itemBinding.rearMore.setOnClickListener {
var dialogCamera0: DialogCameraMore? = null var dialogCamera0: DialogCameraMore? = null
dialogCamera0= null ?:DialogCameraMore(cameraName) dialogCamera0= null ?:DialogCameraMore(cameraName,cameraId)
dialogCamera0.show(childFragmentManager, "DialogCameraMore") dialogCamera0.show(childFragmentManager, "DialogCameraMore")
} }
@ -123,6 +156,7 @@ class CameraFragment : Fragment() {
binding.videoCheck1.content.text=getString(R.string.hight_speed_video) binding.videoCheck1.content.text=getString(R.string.hight_speed_video)
binding.videoCheck2.content.text=getString(R.string.video_stabilization) binding.videoCheck2.content.text=getString(R.string.video_stabilization)
} }
companion object { companion object {

View File

@ -8,7 +8,9 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.xyzshell.andinfo.AndInfo import com.xyzshell.andinfo.AndInfo
import com.xyzshell.andinfo.libs.CpuInfo
import com.xyzshell.myphoneinfo.R import com.xyzshell.myphoneinfo.R
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.convertToApproximateAspectRatio
import com.xyzshell.myphoneinfo.databinding.FragmentHardWareBinding import com.xyzshell.myphoneinfo.databinding.FragmentHardWareBinding
import com.xyzshell.myphoneinfo.dialog.DialogBlueTooth import com.xyzshell.myphoneinfo.dialog.DialogBlueTooth
import com.xyzshell.myphoneinfo.dialog.DialogDiskPart import com.xyzshell.myphoneinfo.dialog.DialogDiskPart
@ -63,83 +65,125 @@ class HardWareFragment : Fragment() {
} }
private fun initText() { private fun initText() {
val cpu = AndInfo.instance.cpu//cpu信息
val device = AndInfo.instance.device//设备信息
val gpu=AndInfo.instance.gpu//gpu信息
//processor //processor
//处理器
binding.text0.textTitle.text = getString(R.string.processor) binding.text0.textTitle.text = getString(R.string.processor)
binding.text0.textContent.text= cpu.getProcessorName()
//制造商
binding.text1.textTitle.text = getString(R.string.vendor) binding.text1.textTitle.text = getString(R.string.vendor)
binding.text1.textContent.text=AndInfo.instance.device.manufacturer binding.text1.textContent.text=cpu.getVendor()
//硬件
binding.text2.textTitle.text = getString(R.string.hardware) binding.text2.textTitle.text = getString(R.string.hardware)
binding.text2.textContent.text=AndInfo.instance.device.hardwareName binding.text2.textContent.text=cpu.getProcessorName()
//核心数
binding.text3.textTitle.text = getString(R.string.cores) binding.text3.textTitle.text = getString(R.string.cores)
binding.text3.textContent.text=AndInfo.instance.cpu.cores.size.toString() binding.text3.textContent.text=cpu.cores.size.toString()
//cpu内核详情
binding.text4.textTitle.text = getString(R.string.CPU) binding.text4.textTitle.text = getString(R.string.CPU)
binding.text4.textContent.text=AndInfo.instance.cpu.text() binding.text4.textContent.text=cpu.getAllArchitectures().joinToString()
//制程工艺
binding.text5.textTitle.text = getString(R.string.process) binding.text5.textTitle.text = getString(R.string.process)
binding.text5.textContent.text=cpu.getProcessInfo().process
//架构
binding.text6.textTitle.text = getString(R.string.architecture) binding.text6.textTitle.text = getString(R.string.architecture)
binding.text6.textContent.text=cpu.getArchitecture()
//ABI
binding.text7.textTitle.text = getString(R.string.ABI) binding.text7.textTitle.text = getString(R.string.ABI)
binding.text7.textContent.text=cpu.getAbi()
//supported_ABls
binding.text8.textTitle.text = getString(R.string.supported_ABls) binding.text8.textTitle.text = getString(R.string.supported_ABls)
binding.text8.textContent.text=cpu.getSupportedAbis().joinToString()
//频率
binding.text9.textTitle.text = getString(R.string.frequencies) binding.text9.textTitle.text = getString(R.string.frequencies)
binding.text9.textContent.text=cpu.getFrequencyText()
//gpu //gpu
binding.cpuText1.textTitle.text = getString(R.string.vendor) binding.gpuText1.textTitle.text = getString(R.string.vendor)
binding.cpuText2.textTitle.text = getString(R.string.gpu) binding.gpuText1.textContent.text=gpu.getVendorName()
val gpuInfo=AndInfo.instance.gpu.getGpuInformation() binding.gpuText2.textTitle.text = getString(R.string.gpu)
gpuInfo.vkPhysicalDevices?.let { devices ->
gpu.getGpuInformation().vkPhysicalDevices?.let { devices ->
if (devices.isNotEmpty()) { if (devices.isNotEmpty()) {
devices.forEachIndexed { index, vkPhysicalDevice -> devices.forEachIndexed { index, vkPhysicalDevice ->
binding.cpuText1.textContent.text=vkPhysicalDevice.vendorId.toString() binding.gpuText2.textContent.text=vkPhysicalDevice.deviceName
binding.cpuText2.textContent.text=vkPhysicalDevice.deviceName
} }
} }
} }
binding.cpuText3.textTitle.text=getString(R.string.max_frequency) binding.gpuText3.textTitle.text=getString(R.string.max_frequency)
binding.cpuText4.textTitle.text=getString(R.string.architecture) binding.gpuText4.textTitle.text=getString(R.string.architecture)
binding.cpuText5.textTitle.text=getString(R.string.cores) binding.gpuText5.textTitle.text=getString(R.string.cores)
binding.cpuText6.textTitle.text=getString(R.string.total_l2) binding.gpuText5.textContent.text=gpu.getOpenGLExtensionCount().toString()
binding.cpuText7.textTitle.text=getString(R.string.bus_width) binding.gpuText6.textTitle.text=getString(R.string.total_l2)
binding.cpuText8.textTitle.text=getString(R.string.vulkan_support) binding.gpuText7.textTitle.text=getString(R.string.bus_width)
binding.cpuText9.textTitle.text=getString(R.string.vulkan_API) binding.gpuText8.textTitle.text=getString(R.string.vulkan_support)
binding.gpuText8.textContent.text=gpu.isVulkanSupported().toString()
binding.gpuText9.textTitle.text=getString(R.string.vulkan_API)
binding.gpuText9.textContent.text=gpu.getVulkanApiVersion()
binding.open1.text=getString(R.string.opengl) binding.open1.text=getString(R.string.opengl)
gpuInfo.eglInformation?.let { eglInfo -> gpu.getGpuInformation().eglInformation?.let { eglInfo ->
eglInfo.eglExtensions?.let { eglInfo.eglExtensions?.let {
dialogExtension?.setContent(it.joinToString()) dialogExtension?.setContent(it.joinToString())
} }
eglInfo.glInformation?.let{glInfo ->
binding.openItem1.text=glInfo.glVendor
binding.openItem2.text=glInfo.glRenderer
binding.openItem3.text=glInfo.glVersion
}
} }
binding.openItem1.text=gpu.getVendorName()
binding.openItem2.text=gpu.getRendererName()
binding.openItem3.text=gpu.getOpenGLVersion()
//display //display
val defaultDisplayInfo = AndInfo.instance.display.getDefaultDisplayInfo() val display=AndInfo.instance.display//显示信息
val defaultDisplayInfo = display.getDefaultDisplayInfo()
val width = defaultDisplayInfo?.widthPixels.toString()
val height = defaultDisplayInfo?.heightPixels.toString()
if(defaultDisplayInfo!=null){ if(defaultDisplayInfo!=null){
binding.disText1.textContent.text=defaultDisplayInfo.widthPixels.toString()+"x"+defaultDisplayInfo.heightPixels.toString()
binding.disText1.textContent.text=width+"x"+height
} }
binding.disText1.textTitle.text=getString(R.string.resolution) binding.disText1.textTitle.text=getString(R.string.resolution)
binding.disText2.textTitle.text=getString(R.string.screen_density)//这个是px binding.disText2.textTitle.text=getString(R.string.screen_density)//这个是px
binding.disText2.textContent.text=defaultDisplayInfo?.ppi.toString()
binding.disText3.textTitle.text=getString(R.string.screen_density_d) binding.disText3.textTitle.text=getString(R.string.screen_density_d)
val dpiStr=defaultDisplayInfo?.densityDpi.toString()+"(xxhdpi)\n"+defaultDisplayInfo?.xdpi?.roundToInt()+"dp"+defaultDisplayInfo?.ydpi?.roundToInt()+"dp" val dpiStr=defaultDisplayInfo?.densityDpi.toString()+"(xxhdpi)\n"+defaultDisplayInfo?.xdpi?.roundToInt()+"dpx"+defaultDisplayInfo?.ydpi?.roundToInt()+"dp"
binding.disText3.textContent.text=dpiStr binding.disText3.textContent.text=dpiStr
binding.disText4.textTitle.text=getString(R.string.screen_size_e) binding.disText4.textTitle.text=getString(R.string.screen_size_e)
binding.disText5.textTitle.text=getString(R.string.aspect_ratio) binding.disText5.textTitle.text=getString(R.string.aspect_ratio)
binding.disText5.textContent.text=convertToApproximateAspectRatio(width = width.toInt(), height = height.toInt()).toString()
binding.disText6.textTitle.text=getString(R.string.refresh_rate) binding.disText6.textTitle.text=getString(R.string.refresh_rate)
binding.disText6.textContent.text=defaultDisplayInfo?.refreshRate.toString()+"HZ" binding.disText6.textContent.text=defaultDisplayInfo?.refreshRate.toString()+"HZ"
binding.disText7.textTitle.text=getString(R.string.wide_color_gamut) binding.disText7.textTitle.text=getString(R.string.wide_color_gamut)
binding.disText7.textContent.text=defaultDisplayInfo?.isWideColorGamut.toString() binding.disText7.textContent.text=defaultDisplayInfo?.isWideColorGamut.toString()
binding.disText8.textTitle.text=getString(R.string.hdr_support) binding.disText8.textTitle.text=getString(R.string.hdr_support)
binding.disText8.textContent.text=defaultDisplayInfo?.isHdr.toString() if(defaultDisplayInfo?.isHdr == true){
defaultDisplayInfo.hdrTypes.joinToString()
binding.disText8.textContent.text= defaultDisplayInfo.hdrTypes.joinToString()
}else{
binding.disText8.textContent.text= "No"
}
//memory //memory
val storageInfo = AndInfo.instance.storage//存储信息 val storageInfo = AndInfo.instance.storage//存储信息
val used=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageUsedSpace) val used=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageUsedSpace)
val free=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageAvailableSpace) val free=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageAvailableSpace)
val total=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageTotalSpace) val total=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageTotalSpace)
val outused=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.externalStorageUsedSpace?: 0)
val outfree=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.externalStorageAvailableSpace?: 0)
val outtotal=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.externalStorageTotalSpace?: 0)
binding.memoryLayout.memText1.textTitle.text=getString(R.string.ram_size) binding.memoryLayout.memText1.textTitle.text=getString(R.string.ram_size)
binding.memoryLayout.memText1.textContent.text=total binding.memoryLayout.memText1.textContent.text=total
binding.memoryLayout.ram1.text=used+" used" binding.memoryLayout.ram1.text=used+" used"
@ -149,9 +193,9 @@ class HardWareFragment : Fragment() {
//storage //storage
binding.memoryLayout.memText3.textTitle.text=getString(R.string.zram) binding.memoryLayout.memText3.textTitle.text=getString(R.string.zram)
binding.memoryLayout.memText3.textContent.text=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageTotalSpace) binding.memoryLayout.memText3.textContent.text=Formatter.formatFileSize(AndInfo.instance.context, storageInfo.internalStorageTotalSpace)
binding.memoryLayout.ram3.text=used+" used" binding.memoryLayout.ram3.text=outused+" used"
binding.memoryLayout.ram4.text=free+" free" binding.memoryLayout.ram4.text=outfree+" free"
binding.memoryLayout.seekbar2.progress=(used.substring(0,used.indexOf(" ")).toDouble() / total.substring(0,total.indexOf(" ")).toDouble() *100).toInt() binding.memoryLayout.seekbar2.progress=(outused.substring(0,outused.indexOf(" ")).toDouble() / outtotal.substring(0,outtotal.indexOf(" ")).toDouble() *100).toInt()
//fileSystem //fileSystem
binding.memoryLayout.storText1.textTitle.text=getString(R.string.filesystem) binding.memoryLayout.storText1.textTitle.text=getString(R.string.filesystem)

View File

@ -1,16 +1,16 @@
package com.xyzshell.myphoneinfo.dialog package com.xyzshell.myphoneinfo.dialog
import android.graphics.Typeface
import android.os.Bundle import android.os.Bundle
import android.text.SpannableString
import android.text.style.StyleSpan
import android.view.View import android.view.View
import com.xyzshell.andinfo.AndInfo
import com.xyzshell.myphoneinfo.R import com.xyzshell.myphoneinfo.R
import com.xyzshell.myphoneinfo.base.BaseDialogFragment import com.xyzshell.myphoneinfo.base.BaseDialogFragment
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.setDecimal0
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.setDecimal1
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.toTitleCase
import com.xyzshell.myphoneinfo.databinding.DialogCameraMoreBinding 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 getTitle(): String = name
override fun getIconRes(): Int? =9 override fun getIconRes(): Int? =9
@ -19,6 +19,128 @@ class DialogCameraMore(private val name:String) :BaseDialogFragment<DialogCamera
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val cameraInfo = AndInfo.instance.camera
if(!id.isEmpty()){
id.forEachIndexed { index, cameraId ->
val characteristics = cameraInfo.getCameraCharacteristics(id)
characteristics?.let {
// 设置详细信息(使用 include 的文本)
// 设置百万像素
cameraInfo.getMegaPixels(it)?.let { size ->
binding.tv1.setValue("${setDecimal1(size)} MP")
}
//像素阵列大小
cameraInfo.getPixelArraySize(it)?.let { size ->
binding.tv2.setValue(size)
}
// 传感器物理尺寸
cameraInfo.getSensorPhysicalSize(it)?.let { size ->
binding.tv3.setValue(size)
}
// 传感器px尺寸
cameraInfo.getPixelSize(it)?.let { size ->
binding.tv4.setValue("${setDecimal0(size)}μm")
}
// 颜色排列
cameraInfo.getColorFilterArrangement(it)?.let { size ->
binding.tv5.setValue(size)
}
//光圈值
cameraInfo.getAvailableApertures(it)?.let { apertures ->
if (apertures.isNotEmpty()) {
binding.tv6.setValue("f/${apertures[0]}")
}
}
//焦距
cameraInfo.getFocalLength(it)?.let { apertures ->
if (apertures.isNotEmpty()) {
binding.tv7.setValue(apertures[0].toString())
}
}
// 35mm等效焦距
cameraInfo.getFocal35mmEquivalent(it)?.let { size ->
binding.tv8.setValue("${size.toInt()}mm")
}
// 裁切系数
cameraInfo.getFocal35mmEquivalent(it)?.let { size ->
binding.tv9.setValue("${size.toInt()}x")
}
// 快门速度
cameraInfo.getShutterSpeedRange(it)?.let { size ->
binding.tv11.setValue(size)
}
// ISO感光范围
cameraInfo.getIsoRange(it)?.let { size ->
binding.tv12.setValue(size.lower.toString() + " - " + size.upper.toString())
}
// 闪光灯
binding.check1.content.text=getString(R.string.flash)
cameraInfo.hasFlashUnit(it)?.let { hasFlash ->
binding.check1.image.isSelected=hasFlash
}
// 视频防抖
binding.check2.content.text=getString(R.string.video_stabilization)
cameraInfo.hasVideoStabilization(it)?.let { hasVideoStabilization ->
binding.check2.image.isSelected=hasVideoStabilization
}
// 光学防抖
binding.check3.content.text=getString(R.string.optical_image_stabilization)
cameraInfo.hasOpticalStabilization(it).let { hasOpticalStabilization ->
binding.check3.image.isSelected = hasOpticalStabilization
}
// 曝光锁定
// 曝光模式
binding.check4.content.text=getString(R.string.ae_lock)
cameraInfo.getAutoExposureModes(it)?.let { list ->
val allInfo=list.joinToString(" , ") { mode -> mode}
binding.check4.image.isSelected=list.size>2
binding.more2.text=allInfo
}
// 白平衡锁定
// 白平衡模式
binding.check5.content.text=getString(R.string.wb_lock)
cameraInfo.getWhiteBalanceModes(it)?.let { list ->
binding.check5.image.isSelected=list.size>2
val allInfo=list.joinToString(" , ") { mode -> mode}
binding.more4.text=allInfo
}
//功能
cameraInfo.getAvailableCapabilities(it).let{ capabilities ->
val allCapabilities = capabilities.joinToString(",") { capability ->
toTitleCase(capability.name.replace("_", " "))
}
binding.more1.text=allCapabilities
}
//自动对焦模式
cameraInfo.getAvailableCapabilities(it).let{ capabilities ->
val allInfo=capabilities.joinToString(" , ") { capability ->
toTitleCase(capability.name.replace("_", " "))
}
binding.more3.text=allInfo
}
//场景模式
cameraInfo.getSceneModes(it).let{ capabilities ->
val allInfo=capabilities?.joinToString(" , ") { capability ->
toTitleCase(capability.replace("_", " "))
}
binding.more5.text=allInfo
binding.tv10.setValue(capabilities?.get(0) ?: "")
}
}
}
}
} }
override fun onNegativeClick() { override fun onNegativeClick() {

View File

@ -3,11 +3,17 @@ package com.xyzshell.myphoneinfo.dialog
import android.graphics.Typeface import android.graphics.Typeface
import android.os.Bundle import android.os.Bundle
import android.text.SpannableString import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import android.text.style.StyleSpan import android.text.style.StyleSpan
import android.view.LayoutInflater
import android.view.View import android.view.View
import androidx.compose.ui.graphics.Color
import androidx.core.content.ContextCompat
import com.xyzshell.andinfo.AndInfo
import com.xyzshell.myphoneinfo.R import com.xyzshell.myphoneinfo.R
import com.xyzshell.myphoneinfo.base.BaseDialogFragment import com.xyzshell.myphoneinfo.base.BaseDialogFragment
import com.xyzshell.myphoneinfo.databinding.DialogCpuInfoBinding import com.xyzshell.myphoneinfo.databinding.DialogCpuInfoBinding
import com.xyzshell.myphoneinfo.databinding.ItemDialogCpuBinding
class DialogCpuInfo :BaseDialogFragment<DialogCpuInfoBinding>(DialogCpuInfoBinding::inflate){ class DialogCpuInfo :BaseDialogFragment<DialogCpuInfoBinding>(DialogCpuInfoBinding::inflate){
override fun getTitle(): String = resources.getString(R.string.proc_cpuinfo) override fun getTitle(): String = resources.getString(R.string.proc_cpuinfo)
@ -18,16 +24,32 @@ class DialogCpuInfo :BaseDialogFragment<DialogCpuInfoBinding>(DialogCpuInfoBindi
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
binding.cpuTv01.text=setColonBoldText("Processor :AArch64 Processor rev 2(aarch64)") val cpu = AndInfo.instance.cpu//cpu信息
binding.cpuTv02.text=setColonBoldText("processor :1") cpu.processors.forEach { processor ->
binding.cpuTv03.text=setColonBoldText("BogoMIPS :3.84" ) val view=LayoutInflater.from(context).inflate(R.layout.item_dialog_cpu,binding.container,false)
binding.cpuTv04.text=setColonBoldText("Features :fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid") val itemBinding= ItemDialogCpuBinding.bind(view)
binding.cpuTv05.text=setColonBoldText("CPU implementer :0×41")
binding.cpuTv06.text=setColonBoldText("CPU architecture :8") itemBinding.cpuTv02.text=setColonBoldText("processor :${processor.core.coreId}")
binding.cpuTv07.text=setColonBoldText("CPU variant :0×0") itemBinding.cpuTv03.text=setColonBoldText("BogoMIPS :" )
binding.cpuTv08.text=setColonBoldText("CPU part :0×d03") itemBinding.cpuTv04.text=setColonBoldText("Features :${cpu.getCpuFeatures().joinToString(",")}")
binding.cpuTv09.text=setColonBoldText("CPU revision :4") itemBinding.cpuTv05.text=setColonBoldText("CPU implementer :${processor.core.midr?.implementer}")
binding.hardwareTv.text=setColonBoldText("Hardware :vendor Kirin710") itemBinding.cpuTv06.text=setColonBoldText("CPU architecture :${processor.core.midr?.architecture}")
itemBinding.cpuTv07.text=setColonBoldText("CPU variant :${processor.core.midr?.variant}")
itemBinding.cpuTv08.text=setColonBoldText("CPU part :${processor.core.midr?.primaryPartNumber}")
itemBinding.cpuTv09.text=setColonBoldText("CPU revision :${processor.core.midr?.revision}")
binding.container.addView(view)
}
binding.hardwareTv.text=setColonBoldText("Hardware :${cpu.getProcessorName()}")
// binding.cpuTv01.text=setColonBoldText("Processor :${cpu.getProcessorName()}")
// binding.cpuTv02.text=setColonBoldText("processor :1")
// binding.cpuTv03.text=setColonBoldText("BogoMIPS :3.84" )
// binding.cpuTv04.text=setColonBoldText("Features :fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid")
// binding.cpuTv05.text=setColonBoldText("CPU implementer :0×41")
// binding.cpuTv06.text=setColonBoldText("CPU architecture :8")
// binding.cpuTv07.text=setColonBoldText("CPU variant :0×0")
// binding.cpuTv08.text=setColonBoldText("CPU part :0×d03")
// binding.cpuTv09.text=setColonBoldText("CPU revision :4")
// binding.hardwareTv.text=setColonBoldText("Hardware :vendor Kirin710")
} }
fun setColonBoldText( text: String) : SpannableString { fun setColonBoldText( text: String) : SpannableString {
val colonIndex = text.indexOf(":") val colonIndex = text.indexOf(":")
@ -40,6 +62,12 @@ class DialogCpuInfo :BaseDialogFragment<DialogCpuInfoBinding>(DialogCpuInfoBindi
colonIndex, colonIndex,
SpannableString.SPAN_INCLUSIVE_INCLUSIVE SpannableString.SPAN_INCLUSIVE_INCLUSIVE
) )
spannableString.setSpan(
ForegroundColorSpan(ContextCompat.getColor(context,R.color.left_color)),
0,
colonIndex,
SpannableString.SPAN_INCLUSIVE_EXCLUSIVE
)
return spannableString return spannableString
} else { } else {
return SpannableString(text) return SpannableString(text)

View File

@ -14,33 +14,26 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
android:background="@color/white" android:background="@color/white"
android:orientation="vertical"> android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView <ImageView
android:id="@+id/back_btn" android:id="@+id/back_btn"
android:layout_width="50dp" android:layout_width="wrap_content"
android:layout_height="50dp" android:layout_height="wrap_content"
android:src="@mipmap/go_back" android:src="@mipmap/go_back"
android:padding="13dp" android:padding="13dp"
android:layout_margin="10dp"/> android:layout_margin="10dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="20dp"
android:paddingVertical="10dp"
android:orientation="horizontal">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/cpu_analysis" android:text="@string/cpu_analysis"
android:textStyle="bold" android:textStyle="bold"
android:textSize="18sp"
android:textColor="@color/black"
style="@style/TextHeavy20"/> style="@style/TextHeavy20"/>
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#BFBFBF"/>
</LinearLayout>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
app:layout_constraintTop_toBottomOf="@+id/top_bar" app:layout_constraintTop_toBottomOf="@+id/top_bar"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
@ -117,7 +110,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="15dp" android:layout_marginTop="15dp"
android:orientation="horizontal" android:orientation="vertical"
android:visibility="visible"> android:visibility="visible">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
@ -125,16 +118,19 @@
style="@style/LeftContent" style="@style/LeftContent"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/proc_cpuinfo" android:text="@string/proc_cpuinfo" />
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/infoShow" android:id="@+id/infoShow"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingHorizontal="10dp" android:layout_marginTop="11dp"
android:background="@drawable/hard_bg"
android:paddingHorizontal="12dp"
android:paddingVertical="8dp"
android:textSize="14sp"
android:textAlignment="center"
android:textColor="@color/module_title_color"
android:text="@string/show" android:text="@string/show"
tools:ignore="RelativeOverlap" /> tools:ignore="RelativeOverlap" />
</LinearLayout> </LinearLayout>
@ -143,107 +139,38 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="15dp" android:layout_marginTop="15dp"
android:orientation="horizontal" android:orientation="vertical"
android:visibility="visible"> android:visibility="visible">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/time1" android:id="@+id/time1"
style="@style/LeftContent" style="@style/LeftContent"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/cpu_times" android:text="@string/cpu_times" />
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/timeShow" android:id="@+id/timeShow"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingHorizontal="10dp" android:layout_marginTop="11dp"
android:background="@drawable/hard_bg"
android:paddingHorizontal="12dp"
android:paddingVertical="8dp"
android:textSize="14sp"
android:textAlignment="center"
android:textColor="@color/module_title_color"
android:text="@string/show" android:text="@string/show"
tools:ignore="RelativeOverlap" /> tools:ignore="RelativeOverlap" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/llCluster"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="15dp" android:orientation="vertical">
android:background="@drawable/dashboard_model_background"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="22dp"
android:visibility="visible">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cluster1Title"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cluster_1"
tools:ignore="RelativeOverlap" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextSecondaryTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="@string/cpu0"
tools:ignore="RelativeOverlap" />
<include
android:id="@+id/clu1_text1"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text2"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text3"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text4"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text5"
layout="@layout/common_text_style" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:background="@drawable/dashboard_model_background"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="22dp"
android:visibility="visible">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cluster2Title"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cluster_2"
tools:ignore="RelativeOverlap" />
<com.google.android.material.textview.MaterialTextView
style="@style/TextSecondaryTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="@string/cpu0"
tools:ignore="RelativeOverlap" />
<include
android:id="@+id/clu2_text1"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu2_text2"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu2_text3"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu2_text4"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu2_text5"
layout="@layout/common_text_style" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -18,17 +18,17 @@
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tv_label" android:id="@+id/tv_label"
style="@style/TextDialogLabel" style="@style/LeftContent"
android:layout_width="120dp" android:layout_width="120dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tv_sub_title" android:layout_below="@id/tv_sub_title"
android:gravity="start" android:gravity="start"
android:textSize="15sp" android:textSize="14sp"
android:text="sppppppppppppppppppppp" /> android:text="sppppppppppppppppppppp" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tv_value" android:id="@+id/tv_value"
style="@style/TextDialogContent" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/tv_label" android:layout_alignTop="@id/tv_label"
@ -36,6 +36,7 @@
android:layout_toEndOf="@id/tv_label" android:layout_toEndOf="@id/tv_label"
android:gravity="center" android:gravity="center"
android:textSize="15sp" android:textSize="15sp"
android:textColor="#C1C5C2"
android:text="sppppppppppppppppppppp" /> android:text="sppppppppppppppppppppp" />
</RelativeLayout> </RelativeLayout>

View File

@ -4,7 +4,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingHorizontal="18dp" android:paddingHorizontal="18dp"
android:paddingVertical="15dp" android:paddingVertical="15dp"
android:layout_marginVertical="8dp" android:layout_marginVertical="5dp"
android:background="@drawable/dashboard_model_background" android:background="@drawable/dashboard_model_background"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<LinearLayout <LinearLayout
@ -16,18 +16,19 @@
> >
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/sensor_name" android:id="@+id/sensor_name"
style="@style/TextTool25" style="@style/TextHeavy20"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textStyle="normal" android:textSize="18sp"
android:gravity="start" android:gravity="start"
android:text="spppppppeee" /> android:text="spppppppeee" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/sensor_value" android:id="@+id/sensor_value"
style="@style/TextContentRight" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="start" android:gravity="start"
android:textColor="@color/right_color"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:text="spppppppeee" /> android:text="spppppppeee" />
</LinearLayout> </LinearLayout>

View File

@ -94,16 +94,14 @@
style="@style/LeftContent" style="@style/LeftContent"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Capabilities" android:text="@string/capabilities" />
android:textSize="15sp"
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
style="@style/TextContentRight" android:id="@+id/more1"
style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="High speed video" android:textColor="@color/right_color" />
android:textSize="15sp" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -115,16 +113,14 @@
style="@style/LeftContent" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Exposure modes" android:text="@string/exposure_modes" />
android:textSize="15sp"
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
style="@style/TextContentRight" android:id="@+id/more2"
style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Manual, Auto, Flash" android:textColor="@color/right_color" />
android:textSize="15sp" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -136,18 +132,15 @@
style="@style/LeftContent" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Autofocus modes" android:text="@string/autofocus_modes" />
android:textSize="15sp"
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
style="@style/TextContentRight" android:id="@+id/more3"
style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Manual, Auto, Macro, android:textColor="@color/right_color"
Continuous video, Continuous />
picture"
android:textSize="15sp" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -159,16 +152,16 @@ picture"
style="@style/LeftContent" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="White balance modes" android:text="@string/white_balance_modes"
android:textSize="15sp" />
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
style="@style/TextContentRight" android:id="@+id/more4"
style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Auto, Off, Incandescent,Fluorescent, Daylight, Cloudy" android:textColor="@color/right_color"
android:textSize="15sp" /> />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -180,16 +173,16 @@ picture"
style="@style/LeftContent" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Scene modes" android:text="@string/scene_modes"
android:textSize="15sp" />
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
style="@style/TextContentRight" android:id="@+id/more5"
style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Face priority, Action, Portrait,Landscape, Night, Nightportrait, Theatre, Beach,Snow, Fireworks, Candlelight,High speed video" android:textColor="@color/right_color"
android:textSize="15sp" /> />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -16,277 +16,21 @@
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:id="@+id/container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv01"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Processor :AArch64 Processor rev 2(aarch64)"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv02"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="processor :0"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv03"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BogoMIPS :3.84"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv04"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Features :fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv05"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU implementer :0×41"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv06"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU architecture :8"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv07"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU variant :0×0"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv08"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU part :0×d03"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv09"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU revision :4"
android:textSize="20sp"
android:textStyle="normal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv11"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Processor :AArch64 Processor rev 2(aarch64)"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv12"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="processor :1"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv13"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BogoMIPS :3.84"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv14"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Features :fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv15"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU implementer :0×41"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv16"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU architecture :8"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv17"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU variant :0×0"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv18"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU part :0×d03"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv19"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU revision :4"
android:textSize="20sp"
android:textStyle="normal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv21"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Processor :AArch64 Processor rev 2(aarch64)"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv22"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="processor :2"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv23"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BogoMIPS :3.84"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv24"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Features :fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv25"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU implementer :0×41"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv26"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU architecture :8"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv27"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU variant :0×0"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv28"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU part :0×d03"
android:textSize="20sp"
android:textStyle="normal" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv29"
style="@style/TextDialogLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU revision :4"
android:textSize="20sp"
android:textStyle="normal" />
</LinearLayout> </LinearLayout>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/hardwareTv" android:id="@+id/hardwareTv"
style="@style/TextDialogLabel" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="Hardware :vendor Kirin710" android:text="Hardware :vendor Kirin710"
android:textSize="20sp" android:textColor="@color/right_color"
android:textStyle="normal" /> android:textSize="18sp" />
</LinearLayout> </LinearLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

View File

@ -85,10 +85,11 @@
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/open2" android:id="@+id/open2"
style="@style/TextContentRight" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/apps" android:text="@string/apps"
android:textColor="@color/right_color"
tools:ignore="RelativeOverlap" /> tools:ignore="RelativeOverlap" />
</LinearLayout> </LinearLayout>
<include layout="@layout/common_text_style" android:id="@+id/video"/> <include layout="@layout/common_text_style" android:id="@+id/video"/>

View File

@ -74,9 +74,9 @@
android:id="@+id/text9" android:id="@+id/text9"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuBtn" android:id="@+id/cpuBtn"
style="@style/TextDialogSubTitle" style="@style/LeftContent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="21dp" android:layout_marginTop="21dp"
@ -84,7 +84,6 @@
android:paddingHorizontal="12dp" android:paddingHorizontal="12dp"
android:paddingVertical="8dp" android:paddingVertical="8dp"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="normal"
android:text="@string/cpu_analysis" android:text="@string/cpu_analysis"
android:textAlignment="center" android:textAlignment="center"
android:textColor="@color/module_title_color" /> android:textColor="@color/module_title_color" />
@ -109,39 +108,39 @@
tools:ignore="RelativeOverlap" /> tools:ignore="RelativeOverlap" />
<include <include
android:id="@+id/cpu_text1" android:id="@+id/gpu_text1"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text2" android:id="@+id/gpu_text2"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text3" android:id="@+id/gpu_text3"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text4" android:id="@+id/gpu_text4"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text5" android:id="@+id/gpu_text5"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text6" android:id="@+id/gpu_text6"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text7" android:id="@+id/gpu_text7"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text8" android:id="@+id/gpu_text8"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<include <include
android:id="@+id/cpu_text9" android:id="@+id/gpu_text9"
layout="@layout/common_text_style" /> layout="@layout/common_text_style" />
<LinearLayout <LinearLayout
@ -205,7 +204,7 @@
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/extensionShow" android:id="@+id/extensionShow"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="21dp" android:layout_marginTop="21dp"
@ -215,6 +214,7 @@
android:textSize="14sp" android:textSize="14sp"
android:textStyle="normal" android:textStyle="normal"
android:text="@string/show" android:text="@string/show"
android:textColor="@color/module_title_color"
android:textAlignment="center" android:textAlignment="center"
tools:ignore="RelativeOverlap" /> tools:ignore="RelativeOverlap" />
</LinearLayout> </LinearLayout>
@ -405,7 +405,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="15dp" android:layout_marginTop="15dp"
android:orientation="horizontal"> android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
style="@style/LeftContent" style="@style/LeftContent"
@ -416,10 +416,16 @@
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/othertext" android:id="@+id/othertext"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingHorizontal="10dp" android:layout_marginTop="11dp"
android:background="@drawable/hard_bg"
android:paddingHorizontal="12dp"
android:paddingVertical="8dp"
android:textSize="14sp"
android:textAlignment="center"
android:textColor="@color/module_title_color"
android:text="@string/show" android:text="@string/show"
tools:ignore="RelativeOverlap" /> tools:ignore="RelativeOverlap" />
</LinearLayout> </LinearLayout>

View File

@ -81,7 +81,7 @@
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/conText2" android:id="@+id/conText2"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="LUX·433 Mbps" android:text="LUX·433 Mbps"
@ -90,7 +90,7 @@
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/conTExt3" android:id="@+id/conTExt3"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="80% -60dBm" android:text="80% -60dBm"

View File

@ -20,7 +20,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="visible" android:visibility="gone"
android:orientation="vertical"> android:orientation="vertical">
<include layout="@layout/common_sensor_style" android:id="@+id/sensor1"/> <include layout="@layout/common_sensor_style" android:id="@+id/sensor1"/>
<include layout="@layout/common_sensor_style" android:id="@+id/sensor2"/> <include layout="@layout/common_sensor_style" android:id="@+id/sensor2"/>

View File

@ -53,7 +53,7 @@
android:layout_weight="1"/> android:layout_weight="1"/>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/pair1" android:id="@+id/pair1"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="14sp" android:textSize="14sp"
@ -63,6 +63,7 @@
android:background="@drawable/hard_bg" android:background="@drawable/hard_bg"
android:textStyle="normal" android:textStyle="normal"
android:text="@string/show" android:text="@string/show"
android:textColor="@color/module_title_color"
android:textAlignment="center" android:textAlignment="center"
tools:ignore="RelativeOverlap" /> tools:ignore="RelativeOverlap" />
@ -84,7 +85,7 @@
<!-- android:layout_weight="1"/>--> <!-- android:layout_weight="1"/>-->
<!-- <com.google.android.material.textview.MaterialTextView--> <!-- <com.google.android.material.textview.MaterialTextView-->
<!-- android:id="@+id/pair2"--> <!-- android:id="@+id/pair2"-->
<!-- style="@style/TextButteryRight"--> <!-- style="@style/LeftContent"-->
<!-- android:layout_width="wrap_content"--> <!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"--> <!-- android:layout_height="wrap_content"-->
<!-- android:paddingHorizontal="10dp"--> <!-- android:paddingHorizontal="10dp"-->

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:background="@drawable/dashboard_model_background"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="22dp"
android:visibility="visible">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cluster1Title"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cluster"
tools:ignore="RelativeOverlap" />
<LinearLayout
android:id="@+id/clusterInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cputitle"
style="@style/LeftContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="@string/cpu0"
android:textSize="14sp"
android:textColor="@color/module_title_color"
/>
<include
android:id="@+id/clu1_text1"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text2"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text3"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text4"
layout="@layout/common_text_style" />
<include
android:id="@+id/clu1_text5"
layout="@layout/common_text_style" />
</LinearLayout>

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:orientation="vertical">
<!-- <com.google.android.material.textview.MaterialTextView-->
<!-- android:id="@+id/cpuTv01"-->
<!-- style="@style/TextDialogLabel"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="Processor :AArch64 Processor rev 2(aarch64)"-->
<!-- android:textSize="20sp"-->
<!-- android:textStyle="normal" />-->
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv02"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="processor :0"
android:textSize="16sp"
android:textColor="@color/right_color"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv03"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BogoMIPS :3.84"
android:textSize="16sp"
android:textColor="@color/right_color" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv04"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Features :fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid"
android:textSize="16sp"
android:textColor="@color/right_color" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv05"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU implementer :0×41"
android:textSize="16sp"
android:textColor="@color/right_color" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv06"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU architecture :8"
android:textSize="16sp"
android:textColor="@color/right_color" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv07"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU variant :0×0"
android:textSize="16sp"
android:textColor="@color/right_color" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv08"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU part :0×d03"
android:textSize="16sp"
android:textColor="@color/right_color" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/cpuTv09"
style="@style/TextHeavy20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CPU revision :4"
android:textSize="16sp"
android:textColor="@color/right_color" />
</LinearLayout>
</LinearLayout>

View File

@ -167,7 +167,7 @@
android:textStyle="bold" /> android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/pubShow" android:id="@+id/pubShow"
style="@style/TextButteryRight" style="@style/LeftContent"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="14sp" android:textSize="14sp"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 234 B

View File

@ -293,4 +293,11 @@
<string name="toybox">Toybox</string> <string name="toybox">Toybox</string>
<string name="java_VM">Java VM</string> <string name="java_VM">Java VM</string>
<string name="current">current</string> <string name="current">current</string>
<string name="ae_lock">AE lock</string>
<string name="wb_lock">WB lock</string>
<string name="white_balance_modes">White balance modes</string>
<string name="capabilities">Capabilities</string>
<string name="exposure_modes">Exposure modes</string>
<string name="autofocus_modes">Autofocus modes</string>
<string name="scene_modes">Scene modes</string>
</resources> </resources>