Saturday 25 February 2017

Flashlight Android App | Source Code for Android FlashLight Application Run in Android Studio

Source code for Flashlight Android App is given below. 




package com.example.admin.flashlightapp;

import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;

public class MainActivity extends AppCompatActivity {

    //variable declaration
    ImageButton imagebuttonoff;
    public static Camera cmr;
    Camera.Parameters parameters;
    boolean isFlash = false;
    boolean isOn = false;


    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //variable casting and assigning condition        
imagebuttonoff = (ImageButton) findViewById(R.id.imagebuttonoff);
if (getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH))

        {

            cmr = Camera.open();
            parameters = cmr.getParameters();
            isFlash = true;

        }


        //setting onclicklistner on off image ie on black imagebutton..        
imagebuttonoff.setOnClickListener(new View.OnClickListener() {
            @Override            public void onClick(View v) {
                if (isFlash)
                // if your mobile support flash light
                {


                    //if flash light is not on                    
if (!isOn) {

                        imagebuttonoff.setImageResource(R.drawable.on); 
//replace offswitch image with onswitch image.                        
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
//also set on flash torch parameter..                        
cmr.setParameters(parameters);//by using object  cmr.                        
cmr.startPreview();
                        isOn = true;// now flashlight is on..ie true

                    } else {
         //exactly opposite as above ie as switch on..ie how to off flash light..                       
 imagebuttonoff.setImageResource(R.drawable.off);
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
 cmr.setParameters(parameters);
                        cmr.stopPreview();
                        isOn = false; // now flash light is off..
                    }
                } else { // if your mobile does not support flash light..
                    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setTitle("Error"); 
// this will set title for error message...                   
 builder.setMessage("Flash light not available"); 
// will display message                    
builder.setPositiveButton("ok", new DialogInterface.OnClickListener()
 {//so that you can click on "ok"..                       
 @Override                     
   public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss(); // so application is dismiss                            
finish();
                        }
                    });


 AlertDialog alertDialog = builder.create(); 
//this will shows dialog box..
/which is showing above error message..                    
alertDialog.show();

                }

            }
        });


    }

    // calls to destroy    
@Override    
protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // on pause turn off the flash        
cmr.stopPreview();

    }

    @Override    
protected void onRestart() {
        super.onRestart();

    }


    @Override    
protected void onResume() {
        super.onResume();
        // on resume turn on the flash        
if (isOn)
            cmr.startPreview();

    }

    @Override    
protected void onStart() {
        super.onStart();
        // on starting the app get the camera params        
cmr.startPreview();

    }


    @Override   
 protected void onStop() { // this will stop out flash light..       
 super.onStop();

    }


}
Changes in Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"    
package="com.example.admin.flashlightapp">
    <uses-permission android:name="android.permission.CAMERA">
</uses-permission>
    <uses-feature android:name="android.hardware.camera2">
</uses-feature>

    <application        
android:allowBackup="true"        
android:icon="@mipmap/ic_launcher"        
android:label="@string/app_name"       
android:supportsRtl="true"        
android:theme="@style/AppTheme">
 <activity android:name=".MainActivity" 
android:configChanges="orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>




Important Tips - 

<activity android:name=".MainActivity" 
android:configChanges="orientation|screenSize">

This line is use so that flashlight should active on both potrait mode as well as
landscape mode..




Wednesday 15 February 2017

How to Create Calculator Android App by using OnClickListner | Button Click Method

Learn to create Calculator Android App by using OnClickListner on all buttons.. 







Coding is below - 

package com.example.admin.designingcalcyapp;

import android.content.res.Configuration;

import android.net.Uri;

import android.renderscript.Sampler;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import com.google.android.gms.appindexing.Action;

import com.google.android.gms.appindexing.AppIndex;

import com.google.android.gms.appindexing.Thing;

import com.google.android.gms.common.api.GoogleApiClient;



public class MainActivity extends AppCompatActivity {

1.
Below is Variable Declaration
 
 
    private EditText result;

    private EditText newNumber;

    private TextView displayOperation;  

    private Double operand1 = null;

    private String pendingOperation = "=";

    private static final String STATE_PENDING_OPERATION = "PendingOperation";

    private static final String STATE_OPERAND1 = "Operand1";


    @Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


2.
 
Below is Variable Casting
 
    result = (EditText) findViewById(R.id.result);   

    newNumber = (EditText) findViewById(R.id.newNumber);

    displayOperation = (TextView) findViewById(R.id.operation);       



    Button button0 = (Button) findViewById(R.id.button0);

    Button button1 = (Button) findViewById(R.id.button1);

    Button button2 = (Button) findViewById(R.id.button2);

    Button button3 = (Button) findViewById(R.id.button3);

    Button button4 = (Button) findViewById(R.id.button4);

    Button button5 = (Button) findViewById(R.id.button5);

    Button button6 = (Button) findViewById(R.id.button6);

    Button button7 = (Button) findViewById(R.id.button7);

    Button button8 = (Button) findViewById(R.id.button8);

    Button button9 = (Button) findViewById(R.id.button9);

    Button buttonDot = (Button) findViewById(R.id.buttonDot);

    Button buttonAdd = (Button) findViewById(R.id.
buttonAdd);
    Button buttonSub = (Button) findViewById(R.id.
buttonSub);
    Button buttonDiv = (Button) findViewById(R.id.
buttonDiv);
    Button buttonMult = (Button) findViewById(R.id.
buttonMult);
    Button buttonEquals = (Button) findViewById(R.id.
buttonEqual);

 
 3 - a 
  
Below is the Listner method, which is called when any number ie 0 to 9 and button dot is pressed.

  
 View.OnClickListener Listner = new View.OnClickListener() {
            
@Override
           
public void onClick(View v) {
                Button b = (Button) v;

               
newNumber.append(b.getText().toString()); // whatever number you pressed will shown in edittext number widgets box newNumber..


            }
        };

3 - b

Setting OnClickListner on all numbers and Dot (.)

        button0.setOnClickListener(Listner);
        button1.setOnClickListener(Listner);
        button2.setOnClickListener(Listner);

        button3.setOnClickListener(Listner);

        button4.setOnClickListener(Listner);
        button5.setOnClickListener(Listner);
        button6.setOnClickListener(Listner);
        button7.setOnClickListener(Listner);
        button8.setOnClickListener(Listner);
        button9.setOnClickListener(Listner);
        buttonDot.setOnClickListener(Listner);
 4 - a

Below is the opListner method, which is called when any operator ie +, -, *, /, = is pressed.


  View.OnClickListener opListner = new View.OnClickListener(

        ) {
            
@Override
           
public void onClick(View v) {

                Button b = (Button) v;
                String op = b.getText().toString();
                String value =
newNumber.getText().toString();
               
try {
                    Double doubleValue = Double.valueOf(value);
                    performOperation(doubleValue, op);

                }
catch (NumberFormatException e) {
                   
newNumber.setText("");


                }


               
pendingOperation = op;
                
displayOperation.setText(pendingOperation);
            }
        };
 
4 - b

Setting OnClickListner on all operators ie on +, -, /, *, =
      

buttonEquals.setOnClickListener(opListner);
buttonAdd.setOnClickListener(opListner);
buttonMult.setOnClickListener(opListner);  
buttonDiv.setOnClickListener(opListner);   
buttonSub.setOnClickListener(opListner);


  5.     

Below is the function for Clear button ( buttonC )


  final Button buttonC = (Button)findViewById(R.id.buttonC);
        buttonC.setOnClickListener(
new View.OnClickListener() {
           
@Override
           
public void onClick(View v) {
               
result.setText("");
            
newNumber.setText("");
               
operand1 = null;
               
pendingOperation = "=";


            }
        });


  6.       

Below is the Function for Negative button ( buttonNeg )

Button buttonNeg = (Button)findViewById(R.id.buttonNeg);
  buttonNeg.setOnClickListener(
new View.OnClickListener() {
            
@Override
            
public void onClick(View v) {
                 String value =
newNumber.getText().toString();
                
if (value.length()==0){

                     
newNumber.setText("-");
                 }

                
else {
                    
try {
                         Double doubleValue = Double.valueOf(value);
                         doubleValue *= -
1;
                        
newNumber.setText(doubleValue.toString());
                     }
catch (NumberFormatException e) {
                          
//newNumber was - or .

                        
newNumber.setText("");

                     }
                 }
             }
         });


    }
7.

Below are methods used to save data across orientation changes ie,
OnSaveInstanceState(), OnRestoreInstanceState(), OnConfigurationChanged()

   
@Override
   
protected void onSaveInstanceState(Bundle outState) {
        outState.putString(
STATE_PENDING_OPERATION, pendingOperation); 
       
if (operand1 != null) {
            outState.putDouble(
STATE_OPERAND1, operand1);
        }
        
super.onSaveInstanceState(outState);
    }

   
@Override
   
protected void onRestoreInstanceState(Bundle savedInstanceState) {
       
super.onRestoreInstanceState(savedInstanceState);
       
pendingOperation = savedInstanceState.getString(STATE_PENDING_OPERATION);
       
operand1 = savedInstanceState.getDouble(STATE_OPERAND1);
       
displayOperation.setText(pendingOperation);
    }

   
@Override
   
public void onConfigurationChanged(Configuration newConfig) {
       
super.onConfigurationChanged(newConfig);
    }


8.
    
Below is the performOperation Method which is used to perform various types of operations ( +, /, *, - )


private void performOperation (Double value, String operation){

     
if(null == operand1){


         
operand1 = value;
                }
             
else {

           
if (pendingOperation.equals("=")){

          
pendingOperation = operation;
            }

               
switch (pendingOperation){

                   
case  "=":
                   
operand1 = value;
                   
break;

                   
case "/":
                       
if (value==0){
                           
operand1 = 0.0;
                        }
else {
                           
operand1/=value;
                        }
                   
break;

                   
case "*":
                       
operand1 *= value;


                   
case "-":

                       
operand1 -= value;
                       
break;

                   
case "+":
                       
operand1 += value;

                       
break;


                }


      }

          
result.setText(operand1.toString());
          
newNumber.setText("");


}



}