desc:背光调节

main
xiaowusky 2 years ago
parent efb3442a3c
commit be267a3d7f

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.yinuo.safetywatcher"> package="com.yinuo.safetywatcher">
<uses-feature <uses-feature
@ -10,6 +11,12 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 修改系统屏幕亮度 -->
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />

@ -1,14 +1,16 @@
package com.yinuo.safetywatcher.watcher.ui package com.yinuo.safetywatcher.watcher.ui
import android.provider.Settings
import android.view.View import android.view.View
import android.widget.SeekBar
import android.widget.SeekBar.OnSeekBarChangeListener
import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityLightSettingBinding import com.yinuo.safetywatcher.databinding.ActivityLightSettingBinding
import com.yinuo.safetywatcher.databinding.ActivitySensorBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
class LightSettingActivity : NoOptionsActivity() { class LightSettingActivity : NoOptionsActivity() {
private val mBingding by lazy { private val mBinding by lazy {
ActivityLightSettingBinding.inflate(layoutInflater) ActivityLightSettingBinding.inflate(layoutInflater)
} }
@ -17,9 +19,96 @@ class LightSettingActivity : NoOptionsActivity() {
} }
override fun generateContentView(): View { override fun generateContentView(): View {
return mBingding.root return mBinding.root
} }
override fun initView() { override fun initView() {
val initLight = getScreenBrightness()
mBinding.sbLight.progress = initLight
mBinding.sbLight.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
setWindowBrightness(p1)
}
override fun onStartTrackingTouch(p0: SeekBar?) {
}
override fun onStopTrackingTouch(p0: SeekBar?) {
}
})
mBinding.tvCancel.setOnClickListener {
setWindowBrightness(initLight)
}
mBinding.tvConfirm.setOnClickListener {
setScreenBrightness(mBinding.sbLight.progress)
}
}
/**
* 获取系统屏幕亮度(0-255)
*/
private fun getScreenBrightness(): Int {
try {
return Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS)
} catch (e: Settings.SettingNotFoundException) {
e.printStackTrace()
}
return 0
}
/**
* 设置当前应用屏幕亮度只当前有效
*/
private fun setWindowBrightness(brightness: Int) {
val window = window
val lp = window.attributes
lp.screenBrightness = brightness / 255.0f
window.attributes = lp
}
/**
* 设置系统屏幕亮度影响所有页面和app
* 注意这种方式是需要手动权限的android.permission.WRITE_SETTINGS
*/
private fun setScreenBrightness(brightness: Int) {
try {
//先检测调节模式
setScreenManualMode()
//再设置
Settings.System.putInt(
this.contentResolver,
Settings.System.SCREEN_BRIGHTNESS,
brightness
)
} catch (e: Settings.SettingNotFoundException) {
e.printStackTrace()
}
}
/**
* 设置系统亮度调节模式(SCREEN_BRIGHTNESS_MODE)
* SCREEN_BRIGHTNESS_MODE_MANUAL 手动调节
* SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自动调节
*/
private fun setScreenManualMode() {
try {
//获取当前系统亮度调节模式
val mode =
Settings.System.getInt(this.contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE)
//如果是自动,则改为手动
if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
Settings.System.putInt(
this.contentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
)
}
} catch (e: Settings.SettingNotFoundException) {
e.printStackTrace()
}
} }
} }

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/_2A4284_30" />
<corners
android:bottomRightRadius="0dp"
android:bottomLeftRadius="@dimen/_20dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
</shape>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/_2A4284" />
<corners
android:bottomRightRadius="@dimen/_20dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
</shape>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--定义seekbar滑动条的底色-->
<item android:id="@android:id/background">
<shape>
<corners android:radius="@dimen/_20dp" />
<gradient
android:angle="270"
android:centerColor="@color/_505971"
android:centerY="0.75"
android:endColor="@color/_505971"
android:startColor="@color/_505971" />
</shape>
</item>
<!--定义seekbar滑动条进度颜色-->
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="@dimen/_20dp" />
<solid android:color="@color/white" />
</shape>
</clip>
</item>
</layer-list>

@ -1,7 +1,60 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">
<RelativeLayout
android:layout_width="@dimen/_960dp"
android:layout_height="@dimen/_511dp"
android:layout_marginTop="@dimen/_201dp"
android:background="@drawable/warn_setting_btn_bg">
<SeekBar
android:id="@+id/sb_light"
style="@style/LightSeekbarStyle"
android:layout_width="@dimen/_630dp"
android:layout_height="@dimen/_100dp"
android:layout_marginStart="@dimen/_140dp"
android:layout_marginTop="@dimen/_160dp"
android:max="255"
android:min="0"
android:padding="0dp"
android:progress="20" />
<TextView
android:id="@+id/tv_light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/_185dp"
android:layout_marginEnd="@dimen/_132dp"
android:text="55%"
android:textColor="@color/white"
android:textSize="@dimen/_36dp" />
<TextView
android:id="@+id/tv_cancel"
android:layout_width="@dimen/_480dp"
android:layout_height="@dimen/_81dp"
android:layout_alignParentBottom="true"
android:background="@drawable/cancel_btn_bg"
android:gravity="center"
android:text="@string/cancel"
android:textColor="@color/white_30"
android:textSize="@dimen/_36dp" />
<TextView
android:id="@+id/tv_confirm"
android:layout_width="@dimen/_480dp"
android:layout_height="@dimen/_81dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:background="@drawable/confirm_btn_bg"
android:gravity="center"
android:text="@string/confirm"
android:textColor="@color/white"
android:textSize="@dimen/_36dp" />
</RelativeLayout>
</LinearLayout> </LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

@ -6,6 +6,7 @@
<color name="white">#ffffff</color> <color name="white">#ffffff</color>
<color name="white_20">#33ffffff</color> <color name="white_20">#33ffffff</color>
<color name="white_30">#4Cffffff</color>
<color name="colorTheme">#1ED5CA</color> <color name="colorTheme">#1ED5CA</color>
<color name="black_overlay">#66000000</color> <color name="black_overlay">#66000000</color>
@ -14,7 +15,9 @@
<color name="_242f4d_30">#4C242F4D</color> <color name="_242f4d_30">#4C242F4D</color>
<color name="_303852">#303852</color> <color name="_303852">#303852</color>
<color name="_2A4284">#2A4284</color> <color name="_2A4284">#2A4284</color>
<color name="_2A4284_30">#4C2A4284</color>
<color name="_842A2A">#842A2A</color> <color name="_842A2A">#842A2A</color>
<color name="_505971">#505971</color>
<color name="color_ok">#01E41C</color> <color name="color_ok">#01E41C</color>
<color name="color_offline">#999999</color> <color name="color_offline">#999999</color>

@ -46,4 +46,11 @@
<dimen name="_20dp">20px</dimen> <dimen name="_20dp">20px</dimen>
<dimen name="_17dp">17px</dimen> <dimen name="_17dp">17px</dimen>
<dimen name="_300dp">300px</dimen> <dimen name="_300dp">300px</dimen>
<dimen name="_960dp">960px</dimen>
<dimen name="_511dp">511px</dimen>
<dimen name="_201dp">201px</dimen>
<dimen name="_140dp">140px</dimen>
<dimen name="_630dp">630px</dimen>
<dimen name="_81dp">81px</dimen>
<dimen name="_480dp">480px</dimen>
</resources> </resources>

@ -34,6 +34,8 @@
<string name="sensor_name_txt">传感器名称</string> <string name="sensor_name_txt">传感器名称</string>
<string name="sensor_step_txt">传感器量程</string> <string name="sensor_step_txt">传感器量程</string>
<string name="sensor_type_txt">传感器种类</string> <string name="sensor_type_txt">传感器种类</string>
<string name="cancel">取消</string>
<string name="confirm">确认</string>
<string-array name="excel_column"> <string-array name="excel_column">
<item>时间</item> <item>时间</item>

@ -35,4 +35,15 @@
<item name="android:minHeight">10dp</item> <item name="android:minHeight">10dp</item>
<item name="android:thumb">@drawable/new_thumb</item> <item name="android:thumb">@drawable/new_thumb</item>
</style> </style>
<!--自定义seekbarstyle-->
<style name="LightSeekbarStyle">
<item name="android:minHeight">@dimen/_100dp</item>
<item name="android:maxHeight">@dimen/_100dp</item>
<item name="android:indeterminateOnly">false</item>
<item name="android:indeterminateDrawable">@color/colorAccent</item>
<item name="android:progressDrawable">@drawable/light_seekbar_progress_drawable</item>
<item name="android:thumb">@null</item>
</style>
</resources> </resources>

Loading…
Cancel
Save