Wednesday, September 16, 2015

// //

Change the screen brightness using alert dialog with seek bar example

Hai guys? how are you? This time, I have to teach you some simple tutorials in android programming..

Do you want to change screen brightness using seek bar in alertdialog?

Well this time your wish has come true!

In your activity_main.xml copy this code:






Now in MainActivity.java Copy this code:

import android.os.Bundle;
import android.provider.Settings.SettingNotFoundException;
import android.provider.Settings.System;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager.LayoutParams;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
public class MainActivity extends Activity {
public TextView txtView;
float curBrightnessValue = 0;


private int brightness;
//Content resolver used as a handle to the system's settings
private ContentResolver cResolver;
//Window object, that will store a reference to the current window
private Window window;



@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtView = (TextView)findViewById(R.id.textView1); // TextView
// Button1
final Button btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
	
	
public void onClick(View v) {
ShowDialog();
}  
});
}




public void ShowDialog(){
final AlertDialog.Builder popDialog = new AlertDialog.Builder(this);
final SeekBar seek = new SeekBar(this);
seek.setMax(255);
seek.setKeyProgressIncrement(1);
window = getWindow();
cResolver = getContentResolver();


//popDialog.setIcon(android.R.drawable.btn_star_big_on);
popDialog.setTitle("Please Select Into Your Desired Brightness ");
popDialog.setView(seek);

try 
{
	//Get the current system brightness
	brightness = System.getInt(cResolver, System.SCREEN_BRIGHTNESS);
} 
catch (SettingNotFoundException e) 
{
	//Throw an error case it couldn't be retrieved
	Log.e("Error", "Cannot access system brightness");
	e.printStackTrace();
}

//Set the progress of the seek bar based on the system's brightness
seek.setProgress(brightness);


seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
	
	
	
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){
	
	//Set the minimal brightness level
	//if seek bar is 20 or any value below
	if(progress<=20)
	{
		popDialog.setIcon(R.drawable.bright1);
		//Set the brightness to 20
		brightness=20;
	
	}
	else //brightness is greater than 20
	{
		//Set brightness variable based on the progress bar 
		brightness = progress;
	}
	//Calculate the brightness percentage
	float perc = (brightness /(float)255)*100;
	//Set the brightness percentage 
	
	
//Do something here with new value
txtView.setText("Value of : " + progress);
}



public void onStartTrackingTouch(SeekBar arg0) {
	
	
// TODO Auto-generated method stub
}



public void onStopTrackingTouch(SeekBar seekBar) {
	
	//Set the system brightness using the brightness variable value
	System.putInt(cResolver, System.SCREEN_BRIGHTNESS, brightness);
	//Get the current window attributes
	LayoutParams layoutpars = window.getAttributes();
	//Set the brightness of this window
	layoutpars.screenBrightness = brightness / (float)255;
	//Apply attribute changes to this window
	window.setAttributes(layoutpars);
	
	
}
});


// Button OK
popDialog.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
popDialog.create();
popDialog.show();
}



@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

Now run it on the real device not in the emulator! HAPPY CODING!