
一、所需工具
1、APKTOOLS反编译工具;
2、配置JAVA环境;
3、Notepad++;
4、提取系统framework-res.apk文件;
二、具体 *** 作
1、因为framework-res.apk是系统文件,我们需要首先加载系统环境,将framework-res.apk放入APKTOOLS文件夹下进行加载。如图:
2、我们反编译framework-res.apk文件。
3、反编译完成以后按路径打开 framework-res\res\values\ 文件夹下的 integers.xml 文件,打开后如图:
4、找到:
<integer name="config_screenBrightnessSettingMinimum">20</integer>最低亮度
<integer name="config_screenBrightnessSettingMaximum">255</integer>最高亮度
<integer name="config_screenBrightnessSettingDefault">130</integer>开机默认亮度
<integer name="config_screenBrightnessDim">20</integer>变换值
5、我们修改好以后回编译、签名、替换即可。
拓展资料:
反编译framework-res.apk
打开\framework-res\res\values\integers.xml
然后找到
<integer name="config_screenBrightnessSettingMinimum">
10</integer>最低亮度
<integer name="config_screenBrightnessSettingMaximum">
255</integer>最高亮度
<integer name="config_screenBrightnessSettingDefault">
102</integer>开机默认亮度
<integer name="config_screenBrightnessDim">10</integer>变暗值
手动修改最低亮度值即可,一般改为1。(0以下未尝试过)。
/*** 获得当前屏幕亮度的模式
* SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度
* SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度
*/
private int getScreenMode(){
int screenMode=0
try{
screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE)
}
catch (Exception localException){
}
return screenMode
}
/**
* 获得当前屏幕亮度值 0--255
*/
private int getScreenBrightness(){
int screenBrightness=255
try{
screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS)
}
catch (Exception localException){
}
return screenBrightness
}
/**
* 设置当前屏幕亮度的模式
* SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度
* SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度
*/
private void setScreenMode(int paramInt){
try{
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, paramInt)
}catch (Exception localException){
localException.printStackTrace()
}
}
/**
* 设置当前屏幕亮度值 0--255
*/
private void saveScreenBrightness(int paramInt){
try{
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, paramInt)
}
catch (Exception localException){
localException.printStackTrace()
}
}
/**
* 保存当前的屏幕亮度值,并使之生效
*/
private void setScreenBrightness(int paramInt){
Window localWindow = getWindow()
WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes()
float f = paramInt / 255.0F
localLayoutParams.screenBrightness = f
localWindow.setAttributes(localLayoutParams)
}
我在我的应用程序中使用android camera2拍摄连续图像,这时我使用camera2获得的图像预览亮度与原始相机相比非常暗.我看到了这个,但答案中没有类似的要求.我试图设置camera2亮度的建议在这里:
请注意,此控件仅在android.control.aeMode!= OFF时有效.即使android.control.aeLock == true,此控件也会生效.
captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW)
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON)
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_LOCK, true)
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, 6)
但它仍然显示预览为暗图像,如下所示.
看到这里的区别:
原装相机:
使用Camera2:
我需要传递的值是什么,作为第二个参数:
captureRequestBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, 6)
我保持6,因为正如doc的建议:
例如,如果曝光值(EV)步长为0.333,则"6"表示+2 EV的曝光补偿-3意味着-1 EV的曝光补偿.
但亮度仍然没有影响..
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)