Android屏幕亮度实现
来源:互联网 发布:杭州汉聚网络招聘 编辑:程序博客网 时间:2024/06/06 05:09
1.前几天刚好某某人说屏幕太刺眼,最暗还是不行,我就自己动手给她做一个吧(虽然没有起作用,惭愧)
2.懒得说废话,直接看效果吧
3.总的来说,就是修改设为手动调节亮度后,再调节系统的亮度,亮度的值为1-255
4.直接看代码,用到了一个开源库,后面会有说明
package com.xugongming38.light4zyj;import android.Manifest;import android.content.ContentResolver;import android.content.Intent;import android.content.pm.PackageManager;import android.graphics.Color;import android.net.Uri;import android.provider.Settings;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;import com.sdsmdg.harjot.crollerTest.Croller;import org.w3c.dom.Text;public class MainActivity extends AppCompatActivity { //private static final int MY_PERMISSIONS_REQUEST =1; ContentResolver contentResolver; TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //testPermission(); CheckPermission(); setScrennManualMode(); init(); } private void CheckPermission() { if (!Settings.System.canWrite(this)) { Toast.makeText(this,"请在该设置页面勾选,才可以使用!",Toast.LENGTH_SHORT).show(); Uri selfPackageUri = Uri.parse("package:" + this.getPackageName()); Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, selfPackageUri); startActivity(intent); } } /*public void testPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_SETTINGS) != PackageManager.PERMISSION_GRANTED) { Toast.makeText(this,"给个权限!",Toast.LENGTH_SHORT).show(); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_SETTINGS}, MY_PERMISSIONS_REQUEST); } }*/ public void setScrennManualMode() {//设为手动调节 contentResolver = getContentResolver(); try { int mode = Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE); if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); } } private int getScreenBrightness() { int defVal = 255; defVal=Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, defVal); return defVal; } private void init() { int t=getScreenBrightness(); tv=(TextView) findViewById(R.id.ls); tv.setText(t+""); Croller croller = (Croller) findViewById(R.id.croller); croller.setIndicatorWidth(10); croller.setBackCircleColor(Color.parseColor("#EDEDED")); croller.setMainCircleColor(Color.WHITE); croller.setMax(255); croller.setStartOffset(45); croller.setProgress(t); croller.setProgressPrimaryStrokeWidth((float)20.0); croller.setProgressSecondaryStrokeWidth((float)20.0); croller.setIsContinuous(false); croller.setLabelColor(Color.BLACK); croller.setProgressPrimaryColor(Color.parseColor("#0B3C49")); croller.setIndicatorColor(Color.parseColor("#0B3C49")); croller.setProgressSecondaryColor(Color.parseColor("#EEEEEE")); croller.setOnProgressChangedListener(new Croller.onProgressChangedListener() { @Override public void onProgressChanged(int progress) { if(progress<0) progress=0; if(progress>255) progress=255; tv.setText(progress+""); try{ Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, progress); } catch (Exception localException){ localException.printStackTrace(); Toast.makeText(MainActivity.this,localException.toString(),Toast.LENGTH_LONG).show(); } }}); } /* @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST: { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted, yay! Do the // contacts-related task you need to do. } else { Toast.makeText(this,"为什么不给权限!!!",Toast.LENGTH_SHORT).show(); } return; } } }*/}
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.xugongming38.light4zyj.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_gravity="center" android:text="---专属" /> <com.sdsmdg.harjot.crollerTest.Croller android:id="@+id/croller" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" app:back_circle_color="#EDEDED" app:indicator_color="#0B3C49" app:indicator_width="10" app:is_continuous="true" app:label_color="#000000" app:main_circle_color="#FFFFFF" app:max="1000" app:label="亮度" app:progress_primary_color="#0B3C49" app:progress_secondary_color="#EEEEEE" app:start_offset="45" /> <TextView android:id="@+id/ls" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_centerInParent="true" android:layout_gravity="center" android:text="0" /></RelativeLayout>
5.里面用的一个很好看环形进度条的github链接在这我知道你是不会想去看的,里面说了所有用法,不得不说,通过这个,我写个好看的计步器的兴趣又来了,扯远了
6.最后吐槽一下android6.0还是有好多不一样(坑)请求权限问题让我修改了好久,为了借鉴,以前的不管用的请求权限过程代码还是留在注释中。遇到问题就直接问我吧!
1 0
- Android屏幕亮度实现
- Android调节屏幕亮度实现代码
- Android 屏幕亮度调节
- android 改变屏幕亮度
- android调节屏幕亮度
- android 设置屏幕亮度
- Android修改屏幕亮度
- Android屏幕亮度调节
- android设置屏幕亮度
- android调节屏幕亮度
- android屏幕亮度调整
- Android 设置屏幕亮度
- Android 调节屏幕亮度
- Android:调节屏幕亮度
- Android 设置屏幕亮度
- android 调节屏幕亮度
- android修改屏幕亮度
- android调节屏幕亮度
- watch命令
- at命令
- SQL Server 未连接到
- palindrome-partitioning-ii
- Thinking in Java 4th
- Android屏幕亮度实现
- 使用idea搭建一个简单的SSM框架:(1)使用idea创建maven项目
- 魔术方法在框架中的应用
- 免费图片转PDF工具 www.itopdf.com 发布
- LeetCode-M-Reorder List
- crond命令
- 19:最低通行费
- 使用idea搭建一个简单的SSM框架:(2)配置springMVC
- fragment基础1