`

改变屏幕Brightness(亮度)

阅读更多
http://www.eoeandroid.com/forum-redirect-tid-66701-goto-lastpost.html#lastpost


看到论坛上有很多问亮度的问题(只能改变当前的Activity的问题,这个程序可以改变整个System的亮度)希望可以给朋友们带来帮助.
package com.jimmy;

import android.app.Activity;
import android.os.Bundle;
import android.provider.Settings;
import android.view.Window;
import android.view.WindowManager;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.SeekBar.OnSeekBarChangeListener;

public class MyActivity extends Activity {
        /** Called when the activity is first created. */
        TextView textView;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                textView = (TextView) findViewById(R.id.MyTextView);
                updateToggles();
        }

        private void updateToggles() {
                // TODO Auto-generated method stub
                SeekBar seekBar = (SeekBar) findViewById(R.id.MySeekBar);
                seekBar.setProgress((int) (android.provider.Settings.System.getInt(
                                getContentResolver(),
                                android.provider.Settings.System.SCREEN_BRIGHTNESS, 255) ));
                seekBar.setOnSeekBarChangeListener(seekListener);
        }

        private OnSeekBarChangeListener seekListener = new OnSeekBarChangeListener() {

                public void onProgressChanged(SeekBar seekBar, int progress,
                                boolean fromUser) {
                        if (fromUser) {
                                Integer tmpInt = seekBar.getProgress();
                                System.out.println(tmpInt);
                                // 51 (seek scale) * 5 = 255 (max brightness)
                                // Old way
                                android.provider.Settings.System.putInt(getContentResolver(),
                                                android.provider.Settings.System.SCREEN_BRIGHTNESS,
                                                tmpInt); // 0-255
                                tmpInt = Settings.System.getInt(getContentResolver(),
                                                Settings.System.SCREEN_BRIGHTNESS, -1);
                                // Cupcake way..... sucks
                                WindowManager.LayoutParams lp = getWindow().getAttributes();
                                // lp.screenBrightness = 1.0f;
                                // Float tmpFloat = (float)tmpInt / 255;
                                if (0<= tmpInt && tmpInt <= 255) {
                                        lp.screenBrightness = tmpInt;
                                }
                                
                                
                                getWindow().setAttributes(lp);
                        }

                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                        // TODO Auto-generated method stub
                        // put awesomeness here
                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                        // TODO Auto-generated method stub
                        // and here too
                }
        };
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="@color/white">
        <TextView android:id="@+id/MyTextView"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:text="亮度是:" />
        
                <SeekBar
                android:layout_gravity="center_horizontal"
                android:id="@+id/MySeekBar"
                android:paddingLeft="5.0dip"
                android:paddingRight="5.0dip"
                android:layout_width="fill_parent"
                android:layout_height="150dip"
                android:layout_marginTop="10.0dip"
                android:layout_marginBottom="10.0dip"
                android:max="255"
                >
        </SeekBar>
</LinearLayout>

权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.jimmy" android:versionCode="1" android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
                <activity android:name=".MyActivity" android:label="@string/app_name">
                        <intent-filter>
                                <action android:name="android.intent.action.MAIN" />
                                <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                </activity>

        </application>
        <uses-sdk android:minSdkVersion="5" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
        <uses-permission android:name="android.permission.BATTERY_STATS"></uses-permission>
        <uses-permission android:name="android.permission.DEVICE_POWER"></uses-permission>
        <uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission>
        <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
        <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

</manifest> 


Android手电筒核心代码
/**
	 * true电筒打开
	 * false电筒关闭
	 */
	private boolean isOpen = false;
	/**
	 * 打开闪光灯
	 */
	private void openFlashLight() {
		
		if (!isOpen) {//闪光灯处于关闭状态
			if (camera==null) {
				camera=Camera.open();
			}
			camera.startPreview();
			Parameters parameters = camera.getParameters();
			parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
			camera.setParameters(parameters);
			isOpen = true;
		}
	}
	/**
	 * 关闭闪光灯
	 */
	private void closeFlashLight() {
		
		if (isOpen) {//闪光灯已经打开
			if (camera != null) {
				Parameters parameters = camera.getParameters();
				parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
				camera.setParameters(parameters);
				camera.release();
				camera = null;
			}
			isOpen = false;
		}
	}
分享到:
评论
1 楼 NevoCao 2011-11-17  
哥们,按照你这样写的,不能调节亮度咋回事?调到最左端能黑屏,其他的无反应

相关推荐

    Node.js-brightness-改变屏幕的亮度

    在给定的“Node.js-brightness-改变屏幕的亮度”主题中,我们聚焦于一个特定的应用场景:通过Node.js来调整计算机屏幕的亮度。这个功能通常会用于命令行实用程序,方便用户通过终端快捷地改变屏幕的显示亮度。 首先...

    C# 改变屏幕亮度的代码

    为了改变屏幕亮度,我们需要修改`DEVMODE`结构体中的亮度相关字段。然而,Win32 API并没有直接提供控制亮度的字段,所以通常会通过调整`dmDisplayBrightness`字段来实现,尽管这并不总是有效。由于不同硬件厂商可能...

    改变屏幕亮度

    在Android系统中,改变屏幕亮度是一项常见的用户交互功能,它允许用户根据环境光线和个人喜好调整设备的显示亮度。本文将详细讲解如何通过 SeekBar 控件实现屏幕亮度的动态调节,并结合给定的“改变屏幕亮度”主题,...

    Android 调节屏幕亮度(当前应用和系统亮度)

    在Android开发中,控制屏幕亮度是一项常见的功能,无论是为了优化用户体验,还是为了适应不同环境下的设备使用。本文将深入探讨如何通过编程方式实现对当前应用和整个系统的亮度调节。 首先,我们要了解Android系统...

    android 实现调整系统屏幕亮度

    在Android开发中,调整系统屏幕亮度是一个常见的需求,它涉及到用户界面的舒适度以及设备的电源管理。本示例提供了一个简单的解决方案,包括系统屏幕亮度的自动适应和手动调节功能。 1. **系统屏幕亮度自适应** ...

    调节手机屏幕的亮度

    通过改变此字段,可以影响当前Activity的亮度。例如: ```java Window window = activity.getWindow(); WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.screenBrightness =...

    安卓屏幕亮度调节

    在`SeekBar`的改变事件中,我们可以实时更新屏幕亮度: ```java SeekBar brightnessSeekBar = findViewById(R.id.brightness_seekbar); brightnessSeekBar.setOnSeekBarChangeListener(new SeekBar....

    Android Studio 屏幕亮度调节Demo

    可以通过`WindowManager`的`getDefaultDisplay()`方法获取到`Display`对象,然后调用`get Brightness()`方法获取当前屏幕亮度值。代码如下: ```java WindowManager wm = (WindowManager) getSystemService...

    Android屏幕亮度调节源代码

    但是,这种方式只会影响当前应用的窗口亮度,不会改变系统的全局亮度。 要调整全局亮度,我们需要使用`Settings.System`类。Android系统设置保存在`Settings.System`中,包括屏幕亮度。以下是如何使用`Settings....

    笔记本屏幕颜色亮度调节

    例如,在Windows系统中,用户可以通过右键点击任务栏通知区域的电源图标,选择“显示设置”,然后在显示设置页面中调整亮度滑块来改变屏幕亮度。 然而,仅仅调整亮度可能无法满足所有需求。某些情况下,我们可能...

    Swift屏幕亮度调整

    接下来,我们可以使用UIScreen的`brightness`属性来获取和设置设备的当前屏幕亮度。这个属性的值范围是0.0到1.0,其中0.0代表最暗,1.0代表最亮。以下是如何获取和设置亮度的例子: ```swift // 获取当前屏幕亮度 ...

    滑动屏幕调整屏幕亮度.zip

    在智能手机和平板电脑中,滑动屏幕调整屏幕亮度是一项基本且重要的功能,它允许用户根据环境光线和个人喜好来改变屏幕的亮度,以达到最佳的视觉体验。这项功能的实现涉及到了许多技术细节,包括触控识别、亮度控制...

    Android应用源码滑动屏幕调整屏幕亮度.zip

    当用户在屏幕上滑动时,`MotionEvent`会连续发送ACTION_DOWN、ACTION_MOVE和ACTION_UP等事件,开发者需要在ACTION_MOVE事件中获取滑动的距离,并根据这个距离来改变屏幕亮度。 以下是一个简单的实现思路: 1. 创建...

    安卓Android源码——滑动屏幕调整屏幕亮度.rar

    通过获取当前Activity的Window对象,可以设置LayoutParams的screenBrightness属性来改变屏幕亮度。这个属性接受一个0.0到1.0之间的浮点数,代表亮度相对于最大亮度的比例。 3. 电源管理服务(PowerManager): ...

    Android项目滑动屏幕调整屏幕亮度.rar

    在Android平台上,滑动屏幕调整屏幕亮度是一种常见的用户体验设计,它允许用户通过在屏幕上上下滑动来改变设备的屏幕亮度,提高或降低视觉舒适度。这个"Android项目滑动屏幕调整屏幕亮度.rar"可能是一个包含源代码和...

    ubuntu14调节屏幕亮度

    你可以直接写入新的值到`brightness`文件来改变当前亮度,但数值必须在`max_brightness`文件所示的最大值范围内。 在Ubuntu 14.04中,如果你遇到无法通过系统设置或快捷键调整亮度的问题,可能是因为内核不支持或者...

    Android屏幕自动调整亮度

    即当环境光线发生改变时,如果屏幕刚开启不久或处于特定状态,系统会立即进行亮度调整;否则,它会将新的光线值暂存,并延后一定时间(如`LIGHT_SENSOR_DELAY`)再执行亮度调整任务,以过滤掉快速而微小的光线波动,...

    安卓调节屏幕亮度

    过度频繁地改变屏幕亮度不仅会影响用户体验,也可能导致电池消耗过快。因此,建议在必要的时候才进行亮度调整,并合理设置亮度变化的步长。 总结来说,安卓平台为开发者提供了丰富的接口和策略来管理屏幕亮度,包括...

    phonegap屏幕亮度调整插件

    在iOS中,插件可能通过`UIScreen`类的`brightness`属性来实现类似功能,这允许开发者动态地改变屏幕的亮度值。在调整亮度时,开发者需要注意考虑到用户的舒适度和电池寿命,因为过于亮的屏幕会消耗更多的电量。 ...

Global site tag (gtag.js) - Google Analytics