画面輝度の取得と変更


https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIScreen_Class/Reference/UIScreen.html

iOS5以降では、iPhone(iPad)の画面輝度を取得したり変更できるようになった。ということで試してみた。iOS4系までは、「裏技」を使わないと実装できないかったがiOS5では簡単に実装できた。輝度変化の通知は「UIScreenBrightnessDidChangeNotification」を使うそうだが、うまく動作しなかった。

ソースコード

輝度UPボタン、輝度DOWNボタン、現在の輝度表示用のラベルをヘッダに追加。

@interface WebViewController : UIViewController{
    UIButton *brightButton;
    UIButton *darkButton;
    UILabel *currentBrightness;
}

それぞれ実装。

- (void)updateBrightness
{
    currentBrightness.text = [NSString stringWithFormat:@"%0.3f", [[UIScreen mainScreen] brightness]];
}
- (void)brighten{
    double brightness = [[UIScreen mainScreen] brightness];
    brightness += 0.1;
    if(brightness > 1.0)brightness = 1.0f;
    [[UIScreen mainScreen] setBrightness:brightness];
    [self updateBrightness];
}
- (void)darken{
    double brightness = [[UIScreen mainScreen] brightness];
    brightness -= 0.1;
    if(brightness < 0.0)brightness = 0.0f;
    [[UIScreen mainScreen] setBrightness:brightness];
    [self updateBrightness];
}
- (void)viewDidLoad
{
    [super viewDidLoad];
   
    currentBrightness = [[UILabel alloc] initWithFrame:CGRectMake(30, 30, 200, 30)];
    [self.view addSubview:currentBrightness];
    [self updateBrightness];
   
    brightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    brightButton.frame = CGRectMake(30,60,200,30);
    [brightButton setTitle:@"Bright" forState:UIControlStateNormal];
    [brightButton addTarget:self action:@selector(brighten) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:brightButton];
   
    darkButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    darkButton.frame = CGRectMake(30,90,200,30);
    [darkButton setTitle:@"Dark" forState:UIControlStateNormal];
    [darkButton addTarget:self action:@selector(darken) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:darkButton];
}

ダウンロード: Brightness

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です