package
com.example.flashlight;
import
android.app.Activity;
import
android.app.AlertDialog;
import
android.content.DialogInterface;
import
android.graphics.Color;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.MenuItem;
import
android.view.View;
import
android.view.WindowManager;
import
android.widget.EditText;
import
android.widget.LinearLayout;
import
android.widget.SeekBar;
public
class
ScreenLight
extends
Activity {
private
LinearLayout mFlash_screen;
private
WindowManager.LayoutParams mScreen;
SeekBar mSeekbarRed;
SeekBar mSeekbarGreen;
SeekBar mSeekbarBlue;
EditText RedEditText;
EditText GreenEditText;
EditText BlueEditText;
int
r =
255
;
int
g =
255
;
int
b =
255
;
@Override
protected
void
onCreate (Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.screenlight);
mFlash_screen = (LinearLayout) findViewById(R.id.flash_screen);
mScreen = getWindow().getAttributes();
mScreen.screenBrightness = 1f;
getWindow().setAttributes(mScreen);
mFlash_screen.setBackgroundColor(Color.rgb(r, g, b));
View view = getLayoutInflater().inflate(R.layout.coloroption_dialog,
null
);
RedEditText = (EditText)view.findViewById(R.id.RedEditText);
GreenEditText = (EditText)view.findViewById(R.id.GreenEditText);
BlueEditText = (EditText)view.findViewById(R.id.BlueEditText);
mSeekbarRed = (SeekBar)view.findViewById(R.id.RedSeekBar);
mSeekbarGreen = (SeekBar)view.findViewById(R.id.GreenSeekBar);
mSeekbarBlue = (SeekBar)view.findViewById(R.id.BlueSeekBar);
mSeekbarRed.setOnSeekBarChangeListener(onSeekbarChangeListener);
mSeekbarGreen.setOnSeekBarChangeListener(onSeekbarChangeListener);
mSeekbarBlue.setOnSeekBarChangeListener(onSeekbarChangeListener);
}
@Override
public
boolean
onCreateOptionsMenu (Menu menu) {
getMenuInflater().inflate(R.menu.screenlight, menu);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected (MenuItem item) {
switch
(item.getItemId()) {
case
R.id.coloroption:
createAlertDialog().show();
break
;
default
:
break
;
}
return
super
.onOptionsItemSelected(item);
}
private
SeekBar.OnSeekBarChangeListener onSeekbarChangeListener =
new
SeekBar.OnSeekBarChangeListener() {
@Override
public
void
onProgressChanged (SeekBar seekBar,
int
progress,
boolean
fromUser) {
r = mSeekbarRed.getProgress();
g = mSeekbarGreen.getProgress();
b = mSeekbarBlue.getProgress();
mFlash_screen.setBackgroundColor(Color.rgb(r, g, b));
RedEditText.setText(mSeekbarRed.getProgress());
GreenEditText.setText(mSeekbarGreen.getProgress());
BlueEditText.setText(mSeekbarGreen.getProgress());
}
@Override
public
void
onStartTrackingTouch (SeekBar seekBar) {
}
@Override
public
void
onStopTrackingTouch (SeekBar seekBar) {
}
};
private
AlertDialog createAlertDialog () {
View innerView = getLayoutInflater().inflate(R.layout.coloroption_dialog,
null
);
final
AlertDialog.Builder builder =
new
AlertDialog.Builder(
this
);
builder.setView(innerView).setTitle(
"배경색 설정"
).setPositiveButton(
"닫기"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick (DialogInterface dialogInterface,
int
i) {
dialogInterface.dismiss();
}
});
return
builder.create();
}
@Override
protected
void
onStart () {
super
.onStart();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override
protected
void
onPause () {
super
.onPause();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
@Override
protected
void
onDestroy () {
super
.onDestroy();
mScreen.screenBrightness = 0f;
getWindow().setAttributes(mScreen);
}
}