android sensors example

20
Android sensors example ackage example.demo; import java.util.Iterator; import java.util.List; import android.app.Activity; import android.graphics.Color; import android.hardware.Sensor; import android.hardware.SensorManager; import android.os.Bundle; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; public class TestSensor extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SensorManager sm = (SensorManager) getApplicationContext(). getSystemService(SENSOR_SERVICE); LinearLayout linearLayout = new LinearLayout(getApplicationContext()); List list = sm.getSensorList(Sensor.TYPE_ALL); Iterator itr = list.iterator(); TextView txtView = null; TableLayout tableLayout = new TableLayout(this); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); tableLayout.setLayoutParams(params); TableRow tableRow = null;

Upload: shubhangi

Post on 22-Oct-2014

71 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Android Sensors Example

Android sensors example

ackage example.demo;

import java.util.Iterator;import java.util.List;

import android.app.Activity;import android.graphics.Color;import android.hardware.Sensor;import android.hardware.SensorManager;import android.os.Bundle;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.LinearLayout;import android.widget.TableLayout;import android.widget.TableRow;import android.widget.TextView;

public class TestSensor extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SensorManager sm = (SensorManager) getApplicationContext(). getSystemService(SENSOR_SERVICE); LinearLayout linearLayout = new LinearLayout(getApplicationContext()); List list = sm.getSensorList(Sensor.TYPE_ALL); Iterator itr = list.iterator(); TextView txtView = null; TableLayout tableLayout = new TableLayout(this); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); tableLayout.setLayoutParams(params); TableRow tableRow = null; while(itr.hasNext()) { txtView = new TextView(getApplicationContext()); txtView.setTextColor(Color.BLACK); tableRow = new TableRow(this); tableRow.setBackgroundColor(Color.YELLOW); Sensor sensor = (Sensor)itr.next(); txtView.setText(sensor.getName()); tableRow.addView(txtView); tableLayout.addView(tableRow);

Page 2: Android Sensors Example

} linearLayout.addView(tableLayout); setContentView(linearLayout); }}

Android's DatePickerDialog API

<?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"> <LinearLayout android:layout_width="fill_parent" android:id="@+id/linearLayout1" android:layout_height="wrap_content"> <EditText android:text="" android:minWidth="20dip" android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:width="150dip" android:height="40dip"> </EditText>

Page 3: Android Sensors Example

<Button android:text="Calendar" android:layout_width="wrap_content" android:id="@+id/button1" android:layout_height="wrap_content" android:height="40dip"></Button> </LinearLayout></LinearLayout>

package com.techienjoy.alertdialog.example;

import java.util.Calendar;import java.util.StringTokenizer;

import android.app.Activity;import android.app.DatePickerDialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.DatePicker;import android.widget.EditText;

public class AlertDialogsExample extends Activity {private EditText txtView;private String initialDate;private String initialMonth;private String initialYear;private DatePickerDialog dialog = null;Context context;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button) findViewById(R.id.button1); txtView = (EditText) findViewById(R.id.textView1); context = getApplicationContext(); btn.setOnClickListener(new View.OnClickListener() {

@Override public void onClick(View v) { Calendar dtTxt = null;

String preExistingDate = (String) txtView.getText().toString(); if(preExistingDate != null && !preExistingDate.equals("")){

Page 4: Android Sensors Example

StringTokenizer st = new StringTokenizer(preExistingDate,"/"); initialMonth = st.nextToken(); initialDate = st.nextToken(); initialYear = st.nextToken(); if(dialog == null) dialog = new DatePickerDialog(v.getContext(), new PickDate(),Integer.parseInt(initialYear), Integer.parseInt(initialMonth)-1, Integer.parseInt(initialDate)); dialog.updateDate(Integer.parseInt(initialYear), Integer.parseInt(initialMonth)-1, Integer.parseInt(initialDate)); } else { dtTxt = Calendar.getInstance(); if(dialog == null) dialog = new DatePickerDialog(v.getContext(),new PickDate(),dtTxt.getTime().getYear(),dtTxt.getTime().getMonth(), dtTxt.getTime().getDay()); dialog.updateDate(dtTxt.getTime().getYear(),dtTxt.getTime().getMonth(), dtTxt.getTime().getDay()); } dialog.show(); } });}private class PickDate implements DatePickerDialog.OnDateSetListener {

@Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { view.updateDate(year, monthOfYear, dayOfMonth); txtView.setText(monthOfYear+"/"+dayOfMonth+"/"+year); dialog.hide(); } }}

Android's TimePickerDialog API

Page 5: Android Sensors Example

<?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" > <EditText android:id="@+id/editText1" android:layout_width="200dip" android:layout_height="wrap_content" android:text=""> </EditText> <Button android:text="Time" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button></LinearLayout>AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.techienjoy.example" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" />

<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".TimePickerDalogExample"

Page 6: Android Sensors Example

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></manifest>

TimePickerDalogExample.javapackage com.techienjoy.example;

import java.util.StringTokenizer;

import android.app.Activity;import android.app.TimePickerDialog;import android.app.TimePickerDialog.OnTimeSetListener;import android.content.res.Resources.Theme;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TimePicker;

public class TimePickerDalogExample extends Activity {

private EditText edTxt = null; private TimePickerDialog timePickDialog = null;

/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

edTxt = (EditText) findViewById(R.id.editText1); Button but1 = (Button) findViewById(R.id.button1);

but1.setOnClickListener(new OnClickListener() {

@Override public void onClick(View v) { String time = edTxt.getText().toString();

Page 7: Android Sensors Example

if (time != null && !time.equals("")) { StringTokenizer st = new StringTokenizer(time, ":"); String timeHour = st.nextToken(); String timeMinute = st.nextToken();

timePickDialog = new TimePickerDialog(v.getContext(), new TimePickHandler(), Integer.parseInt(timeHour), Integer.parseInt(timeMinute), true); } else { timePickDialog = new TimePickerDialog(v.getContext(), new TimePickHandler(), 10, 45, true); }

timePickDialog.show(); } }); }

private class TimePickHandler implements OnTimeSetListener {

@Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { edTxt.setText(hourOfDay + ":" + minute); timePickDialog.hide();

}

}}Android's ListView API

main.xml<?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"> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"/></LinearLayout>

Page 8: Android Sensors Example

listitemview1.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/camera1" android:src="@drawable/camera1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <CheckBox android:id="@+id/chkbox1" android:text="Add to Shopping Cart" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>

listitemview2.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/cupboard" android:src="@drawable/cupboards1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <CheckBox android:id="@+id/chkbox1" android:text="Add to Shopping Cart" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>

Using Android API such as ListActivity and BaseAdapter class files, those can be extended by example specific Java class files such as "ExampleListView" extends ExpandableListActivity and a private inner class filesuch as "ExampleListViewAdapter" extends BaseExpandableListAdapter class file.

ExampleListView.javapackage com.techienjoy.example.listview;

import android.app.ListActivity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;

Page 9: Android Sensors Example

import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.LinearLayout;

public class ExampleListView extends ListActivity { private LayoutInflater layoutInflater = null; private LinearLayout linearLayout = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); linearLayout = new LinearLayout(this); ExampleListViewAdapter adapter = new ExampleListViewAdapter(this); setListAdapter(adapter); } private class ExampleListViewAdapter extends BaseAdapter { private Context context; public ExampleListViewAdapter(Context context) { super(); this.context = context; }

public int getCount() { return 2; }

public Object getItem(int arg0) { return null; }

public long getItemId(int arg0) {

return 0; }

public View getView(int position, View convertView, ViewGroup parent) { if(layoutInflater == null) layoutInflater = (LayoutInflater) context.

getSystemService(Context.LAYOUT_INFLATER_SERVICE);

if(position == 0) { linearLayout = (LinearLayout) layoutInflater.

inflate(R.layout.listitemview1, null); }

Page 10: Android Sensors Example

if(position == 1) { linearLayout = (LinearLayout) layoutInflater.

inflate(R.layout.listitemview2, null); } return linearLayout;

} }}

Android Widget Toolkit

Different Views provided by android toolkit are:

1)   TextView

2)   EditText

3)   ListView

4)   Spinner

5)   Button

6)   CheckBox

7)   RadioButton

8)   WebView

Different Layouts provided by android toolkit are:

1)   LinearLayout   : Adds each view(child) in a straight line either horizontally or vertically

2)   FrameLayout   : Adds each view(child) to the top left corner

3)   RelativeLayout         : Here position of each view is decided with respect to another view

4)   TableLayout              : Here all child views are arranged in the form of a table. No. of rows and columns of the          table can be explicitly defined.

5)   AbsoluteLayout       : Here position of each child is defined by the absolute co-ordinates.

Write a tipe calculator applications

Tip Calculator

Amount of Bill: $

Percentage to Tip: %

Number of People:

Tip Amount: $

15

1

Reset

Page 11: Android Sensors Example

Total to Pay: $

Total per Person: $Old main.xml file contents :-

<?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"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Hello World, tipcalc"

/>

</LinearLayout>

New main.xml file contents :-

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

android:id="@+id/widget0"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

xmlns:android="http://schemas.android.com/apk/res/android"

>

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Hello World, tipcalc"

/>

<TextView

android:id="@+id/widget28"

android:layout_width="99px"

android:layout_height="17px"

android:text="Amount of Bill"

android:layout_x="40px"

android:layout_y="32px"

>

</TextView>

<TextView

android:id="@+id/widget29"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Percentage to Tip"

android:layout_x="40px"

android:layout_y="82px"

>

</TextView>

Page 12: Android Sensors Example

<TextView

android:id="@+id/widget30"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Number of People"

android:layout_x="40px"

android:layout_y="132px"

>

</TextView>

<TextView

android:id="@+id/widget31"

android:layout_width="wrap_content"

android:layout_height="18px"

android:text="Tip Amout"

android:layout_x="40px"

android:layout_y="262px"

>

</TextView>

<TextView

android:id="@+id/widget32"

android:layout_width="wrap_content"

android:layout_height="18px"

android:text="Total Per Person"

android:layout_x="40px"

android:layout_y="352px"

>

</TextView>

<TextView

android:id="@+id/widget33"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Total To Pay"

android:layout_x="40px"

android:layout_y="302px"

>

</TextView>

<Button

android:id="@+id/btncalculate"

android:layout_width="87px"

android:layout_height="wrap_content"

android:text="Calculate"

android:layout_x="40px"

android:layout_y="182px"

>

</Button>

<Button

android:id="@+id/btnreset"

android:layout_width="86px"

Page 13: Android Sensors Example

android:layout_height="wrap_content"

android:text="Reset"

android:layout_x="140px"

android:layout_y="182px"

>

</Button>

<EditText

android:id="@+id/txtbillamount"

android:layout_width="wrap_content"

android:layout_height="35px"

android:text="100"

android:textSize="18sp"

android:layout_x="200px"

android:layout_y="22px"

>

</EditText>

<EditText

android:id="@+id/txtpercentage"

android:layout_width="51px"

android:layout_height="36px"

android:text="10"

android:textSize="18sp"

android:layout_x="200px"

android:layout_y="72px"

>

</EditText>

<EditText

android:id="@+id/txtpeople"

android:layout_width="wrap_content"

android:layout_height="39px"

android:text="1"

android:textSize="18sp"

android:layout_x="200px"

android:layout_y="122px"

>

</EditText>

<TextView

android:id="@+id/txttipamount"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=""

android:layout_x="200px"

android:layout_y="262px"

>

</TextView>

<TextView

android:id="@+id/txttotal"

android:layout_width="wrap_content"

Page 14: Android Sensors Example

android:layout_height="wrap_content"

android:text=""

android:layout_x="200px"

android:layout_y="302px"

>

</TextView>

<TextView

android:id="@+id/txtperperson"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=""

android:layout_x="200px"

android:layout_y="352px"

>

</TextView>

</AbsoluteLayout>

Now we will also write the program which will use this GUI to create the tip calculation functionality. In the tipcalc\src\

com\android\tipcalc.java file you will find this code ( which was automatically created by activitycreator.bat .

Old tipcalc.java contents :-

package com.android;

import android.app.Activity;

import android.os.Bundle;

public class tipcalc extends Activity

{

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

Replace the above code with the following code .

New tipcalc.java contents :-

package com.android;

import android.app.Activity;

import android.os.Bundle;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Button;

import android.view.View;

public class tipcalc extends Activity

{

private EditText txtbillamount;

private EditText txtpeople;

private EditText txtpercentage;

private TextView txtperperson;

private TextView txttipamount;

Page 15: Android Sensors Example

private TextView txttotal;

private Button btncalculate;

private Button btnreset;

private double billamount = 0;

private double percentage = 0;

private double numofpeople=0;

private double tipamount = 0;

private double totaltopay = 0;

private double perperson = 0;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

initControls();

}

private void initControls()

{

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

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

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

txtperperson=(TextView)findViewById(R.id.txtperperson);

txttipamount=(TextView)findViewById(R.id.txttipamount);

txttotal=(TextView)findViewById(R.id.txttotal);

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

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

btncalculate.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ calculate(); }});

btnreset.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ reset(); }});

}

private void calculate()

{

billamount=Double.parseDouble(txtbillamount.getText().toString());

percentage=Double.parseDouble(txtpercentage.getText().toString());

numofpeople=Double.parseDouble(txtpeople.getText().toString());

tipamount=(billamount*percentage)/100;

totaltopay=billamount+tipamount;

perperson=totaltopay/numofpeople;

txttipamount.setText(Double.toString(tipamount));

txttotal.setText(Double.toString(totaltopay));

txtperperson.setText(Double.toString(perperson));

}

private void reset()

{

txtbillamount.setText("");

txtpeople.setText("");

txtpercentage.setText("");

txtperperson.setText("");

Page 16: Android Sensors Example

txttipamount.setText("");

txttotal.setText("");

}

}

Now we will add an icon for our app.

Modify AndroidManifest.xml so that this line is changed from

<application android:label="@string/app_name">

To

<application android:icon="@drawable/icon" android:label="@string/app_name">

Now create a directory drawable in tipcalc\res and put icon.png file there.

Now compile our new application again by running

C:\tools\android\tools\tipcalc>ant

Upload the app to the emulator using adb install command and your first google android app is ready for launch.

Don’t forget to remove the previous uploaded application first.

Analog and Digital clock in Android

Analog Clock Code:    <AnalogClock

    android:id="@+id/analogclock"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    />

Digital Clock Code: <DigitalClock

  android:id="@+id/digitalclock"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

    />E-mail validation in android

Validate Function:    public boolean eMailValidation(String emailstring)

    {

        Pattern emailPattern = Pattern.compile(".+@.+\\.[a-z]+");

        Matcher emailMatcher = emailPattern.matcher(emailstring);

        return emailMatcher.matches();

Page 17: Android Sensors Example

    }

Call method:eMailValidation("[email protected]");

if correct returns true;else return false;