Compiler Lab Index
Compiler Lab Index
COLORS
Date:
AIM:
To develop an android application that invokes GUI components, Font and Colors
using android studio and sdk.
PROCEDURE:
Activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="calculator"
android:textSize="25dp"
android:textStyle="bold"
android:layout_centerHorizontal="true"
android:textColor="#ffff2a81"
android:textColorHighlight="#ff4888ff"
android:fontFamily="@string/hello_world"
android:textAllCaps="true"
android:capitalize="words"
android:clickable="false" />
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:textSize="25dp"
android:textStyle="bold"
android:layout_gravity="bottom"
android:layout_marginTop="43dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="9"
android:inputType="text"
android:layout_alignTop="@+id/textview1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:textSize="25dp"
android:textStyle="bold"
android:layout_gravity="bottom"
android:id="@+id/textview2"
android:layout_below="@+id/edittext"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:id="@+id/edittext2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="9"
android:inputType="text"
android:layout_alignTop="@+id/textview2"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:text="Result"
android:textSize="20dp"
android:textStyle="bold"
android:layout_gravity="bottom"
android:id="@+id/textview3"
android:layout_below="@+id/edittext2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="55dp"
android:text="Add"
android:id="@+id/Button"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_below="@+id/edittext2"
android:layout_alignLeft="@+id/edittext2"
android:layout_alignStart="@+id/edittext2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Subtract"
android:id="@+id/Button2"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_weight="0.13"
android:layout_centerVertical="true"
android:layout_below="@+id/Button"
android:layout_alignLeft="@+id/Button"
android:layout_alignStart="@+id/Button" />
<Button
android:layout_width="wrap_content"
android:layout_height="55dp"
android:text="Multiply"
android:id="@+id/Button3"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_below="@+id/Button2"
android:layout_alignLeft="@+id/Button2"
android:layout_alignStart="@+id/Button2" />
<Button
android:layout_width="wrap_content"
android:layout_height="55dp"
android:text="Divide"
android:id="@+id/Button4"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_below="@+id/Button3"
android:layout_alignLeft="@+id/Button3"
android:layout_alignStart="@+id/Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:id="@+id/button5"
android:layout_gravity="center_horizontal"
android:layout_alignTop="@+id/button6"
android:layout_toLeftOf="@+id/Button4"
android:layout_toStartOf="@+id/Button4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:id="@+id/button6"
android:layout_gravity="center_horizontal"
android:layout_below="@+id/Button4"
android:layout_alignRight="@+id/Button3"
android:layout_alignEnd="@+id/Button3"
android:layout_marginTop="63dp" />
</RelativeLayout>
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.additionproject" >
<application
android:allowBackup="true"
android:icon="@drawable/calcprice"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
</activity>
</application>
</manifest>
OUTPUT:
RESULT:
Thus an android application that invokes GUI components, Font and Colors using
android studio and sdk was successfully developed.
Ex.No:2 DEVELOP AN NATIVE CALCULATOR APPLICATION THAT
USES LAYOUT MANAGERS AND EVENT LISTENERS
Date:
AIM:
To develop a native calculator application that uses layout managers and event
listeners.
PROCEDURE:
Step 1: File NewProject
PROGRAM:
Activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="calculator"
android:textSize="25dp"
android:textStyle="bold"
android:layout_centerHorizontal="true"
android:textColor="#ffff2a81"
android:textColorHighlight="#ff4888ff"
android:fontFamily="@string/hello_world"
android:textAllCaps="true"
android:capitalize="words"
android:clickable="false" />
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:textSize="25dp"
android:textStyle="bold"
android:layout_gravity="bottom"
android:layout_marginTop="43dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="9"
android:inputType="text"
android:layout_alignTop="@+id/textview1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:textSize="25dp"
android:textStyle="bold"
android:layout_gravity="bottom"
android:id="@+id/textview2"
android:layout_below="@+id/edittext"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:id="@+id/edittext2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="9"
android:inputType="text"
android:layout_alignTop="@+id/textview2"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:text="Result"
android:textSize="20dp"
android:textStyle="bold"
android:layout_gravity="bottom"
android:id="@+id/textview3"
android:layout_below="@+id/edittext2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="55dp"
android:text="Add"
android:id="@+id/Button"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_below="@+id/edittext2"
android:layout_alignLeft="@+id/edittext2"
android:layout_alignStart="@+id/edittext2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Subtract"
android:id="@+id/Button2"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_weight="0.13"
android:layout_centerVertical="true"
android:layout_below="@+id/Button"
android:layout_alignLeft="@+id/Button"
android:layout_alignStart="@+id/Button" />
<Button
android:layout_width="wrap_content"
android:layout_height="55dp"
android:text="Multiply"
android:id="@+id/Button3"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_below="@+id/Button2"
android:layout_alignLeft="@+id/Button2"
android:layout_alignStart="@+id/Button2" />
<Button
android:layout_width="wrap_content"
android:layout_height="55dp"
android:text="Divide"
android:id="@+id/Button4"
android:layout_gravity="center_horizontal"
android:checked="false"
android:textSize="20dp"
android:layout_below="@+id/Button3"
android:layout_alignLeft="@+id/Button3"
android:layout_alignStart="@+id/Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:id="@+id/button5"
android:layout_gravity="center_horizontal"
android:layout_alignTop="@+id/button6"
android:layout_toLeftOf="@+id/Button4"
android:layout_toStartOf="@+id/Button4" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:id="@+id/button6"
android:layout_gravity="center_horizontal"
android:layout_below="@+id/Button4"
android:layout_alignRight="@+id/Button3"
android:layout_alignEnd="@+id/Button3"
android:layout_marginTop="63dp" />
</RelativeLayout>
Mainactivity.java
package com.example.hp.additionproject;
import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
Button add,sub,mul,div;
EditText x,y;
TextView display;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
x=(EditText)findViewById(R.id.edittext);
y=(EditText)findViewById(R.id.edittext2);
add=(Button)findViewById(R.id.Button);
sub=(Button)findViewById(R.id.Button2);
mul=(Button)findViewById(R.id.Button3);
div=(Button)findViewById(R.id.Button4);
display=(TextView)findViewById(R.id.textview3);
add.setOnClickListener(new View.OnClickListener()
String a=x.getText().toString();
int m = Integer.parseInt(a);
String b=y.getText().toString();
int n=Integer.parseInt(b);
Integer result=m+n;
String res=result.toString();
display.setText(res);
});
sub.setOnClickListener(new View.OnClickListener()
{
String a=x.getText().toString();
int m = Integer.parseInt(a);
String b=y.getText().toString();
int n=Integer.parseInt(b);
Integer result=m-n;
String res=result.toString();
display.setText(res);
});
mul.setOnClickListener(new View.OnClickListener()
String a=x.getText().toString();
int m = Integer.parseInt(a);
String b=y.getText().toString();
int n=Integer.parseInt(b);
Integer result=m*n;
String res=result.toString();
display.setText(res);
});
div.setOnClickListener(new View.OnClickListener()
String a=x.getText().toString();
int m = Integer.parseInt(a);
String b=y.getText().toString();
int n=Integer.parseInt(b);
Integer result=m/n;
String res=result.toString();
display.setText(res);
});
@Override
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
@Override
// Handle action bar item clicks here. The action bar will
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
return super.onOptionsItemSelected(item);
AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.additionproject" >
<application
android:allowBackup="true"
android:icon="@drawable/calcprice"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
</intent-filter>
</activity>
</application>
</manifest>
OUTPUT:
RESULT:
Thus a native calculator application using layout managers and event listeners was
developed successfully.
Ex.No : 3.a BASIC GRAPHICAL PRIMITIVES - LINE
Date:
AIM:
PROCEDURE:
PROGRAM:
Activity_main.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
tools:context="com.example.app.FullscreenActivity">
<!-- This is the view on which we will draw. -->
<view
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.example.hp.graphical.MainDrawingView"
android:id="@+id/single_touch_view"
android:layout_gravity="left|top"
android:background="#ffffff" />
</FrameLayout>
MainDrawingView.java:
package com.example.hp.graphical;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
super(context, attrs);
paint.setAntiAlias(true);
paint.setStrokeWidth(5f);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
@Override
canvas.drawPath(path, paint);
@Override
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// Set a new starting point
path.moveTo(eventX, eventY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(eventX, eventY);
break;
default:
return false;
invalidate();
return true;
OUTPUT:
RESULT:
Thus an android application that draws basic graphical primitives on the screen
using android studio and sdk was developed successfully.
Ex.No : 4 DRAWING APPLICATION
Date:
AIM:
PROCEDURE:
Step 1 :
PROGRAM:
Define the size for brush and eraser as both a dimension and an integer value so that we
can use these measurements in both the XML layout and drawable resources and the Java
code
Provide the following coding under “dimes.xml” (app res values dimes.xml)
dimes.xml:
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="small_brush">10dp</dimen>
<integer name="small_size">10</integer>
<dimen name="medium_brush">20dp</dimen>
<integer name="medium_size">20</integer>
<dimen name="large_brush">30dp</dimen>
<integer name="large_size">30</integer>
</resources>
Provide the following coding under “dimes.xml” (app res values strings.xml)
Strings.xml:
<resources>
<string name="app_name">Graphicalcolor</string>
<string name="action_settings">Settings</string>
<string name="start_new">New</string>
<string name="brush">Brush</string>
<string name="erase">Erase</string>
<string name="save">Save</string>
<string name="paint">Paint</string>
<string name="sml">Small</string>
<string name="med">Medium</string>
<string name="lrg">Large</string>
</resources>
Copy and Paste the following images under drawable folders: (app res drawable)
To provide background color to the application provide the following coding under
“drawable” folder.
paint.xml:
<item>
<stroke
android:width="4dp"
android:color="#FF999999" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
</shape>
</item>
<item>
<stroke
android:width="4dp"
android:color="#FF999999" />
</shape>
</item>
</layer-list>
To indicate the selected pressed color - provide the following coding under “drawable”
folder.
paint_pressed.xml:
<item>
<stroke
android:width="4dp"
android:color="#FF999999" />
<solid android:color="#00000000" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
</shape>
</item>
<item>
<stroke
android:width="4dp"
android:color="#FF999999" />
</shape>
</item>
</layer-list>
Define the measurement, color and size for the brush and eraser.
small.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval" >
<size
android:height="@dimen/small_brush"
android:width="@dimen/small_brush" />
</shape>
medium.xml:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval" >
<size
android:height="@dimen/medium_brush"
android:width="@dimen/medium_brush" />
large.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval" >
<size
android:height="@dimen/large_brush"
android:width="@dimen/large_brush" />
</shape>
Define the brush choose layout using xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ImageButton
android:id="@+id/small_brush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="@string/sml"
android:src="@drawable/small1" />
<ImageButton
android:id="@+id/medium_brush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="@string/med"
android:src="@drawable/medium1" />
<ImageButton
android:id="@+id/large_brush"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="@string/lrg"
android:src="@drawable/large1" />
</LinearLayout>
Activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFCCCCCC"
android:orientation="vertical"
tools:context=".MainActivity" >
<com.example.hp.graphicalcolor.DrawingView
android:id="@+id/drawing"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginBottom="3dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="3dp"
android:layout_weight="1"
android:background="#FFFFFFFF" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="center"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/new_btn"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:contentDescription="@string/start_new"
android:src="@drawable/new_pic" />
<ImageButton
android:id="@+id/draw_btn"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:contentDescription="@string/brush"
android:src="@drawable/brush" />
<ImageButton
android:id="@+id/erase_btn"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:contentDescription="@string/erase"
android:src="@drawable/eraser"/>
<ImageButton
android:id="@+id/save_btn"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:contentDescription="@string/save"
android:src="@drawable/save" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/paint_colors"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FF660000"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FF660000" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FFFF0000"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FFFF0000" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FFFF6600"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FFFF6600" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FFFFCC00"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FFFFCC00" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FF009900"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FF009900" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FF009999"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FF009999" />
</LinearLayout>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FF0000FF"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FF0000FF" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FF990099"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FF990099" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FFFF6666"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FFFF6666" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FFFFFFFF"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FFFFFFFF" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FF787878"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FF787878" />
<ImageButton
android:layout_width="@dimen/large_brush"
android:layout_height="@dimen/large_brush"
android:layout_margin="2dp"
android:background="#FF000000"
android:contentDescription="@string/paint"
android:onClick="paintClicked"
android:src="@drawable/paint"
android:tag="#FF000000" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
Touch Interaction:
DrawingView.class
package com.example.hp.graphicalcolor;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;
//drawing path
//initial color
//canvas
//canvas bitmap
//brush sizes
//erase flag
private boolean erase=false;
super(context, attrs);
setupDrawing();
//setup drawing
brushSize = getResources().getInteger(R.integer.medium_size);
lastBrushSize = brushSize;
drawPaint.setColor(paintColor);
drawPaint.setAntiAlias(true);
drawPaint.setStrokeWidth(brushSize);
drawPaint.setStyle(Paint.Style.STROKE);
drawPaint.setStrokeJoin(Paint.Join.ROUND);
drawPaint.setStrokeCap(Paint.Cap.ROUND);
@Override
@Override
canvas.drawBitmap(canvasBitmap, 0, 0, canvasPaint);
canvas.drawPath(drawPath, drawPaint);
@Override
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
drawPath.moveTo(touchX, touchY);
break;
case MotionEvent.ACTION_MOVE:
drawPath.lineTo(touchX, touchY);
break;
case MotionEvent.ACTION_UP:
drawPath.lineTo(touchX, touchY);
drawCanvas.drawPath(drawPath, drawPaint);
drawPath.reset();
break;
default:
return false;
//redraw
invalidate();
return true;
//update color
invalidate();
paintColor = Color.parseColor(newColor);
drawPaint.setColor(paintColor);
newSize, getResources().getDisplayMetrics());
brushSize=pixelAmount;
drawPaint.setStrokeWidth(brushSize);
lastBrushSize=lastSize;
}
public float getLastBrushSize(){
return lastBrushSize;
erase=isErase;
else drawPaint.setXfermode(null);
drawCanvas.drawColor(0, PorterDuff.Mode.CLEAR);
invalidate();
MainActivity.java
package com.example.hp.graphicalcolor;
import java.util.UUID;
import android.os.Bundle;
import android.provider.MediaStore;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Toast;
//buttons
//sizes
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawView = (DrawingView)findViewById(R.id.drawing);
currPaint = (ImageButton)paintLayout.getChildAt(0);
currPaint.setImageDrawable(getResources().getDrawable(R.drawable.paint_pressed));
//sizes from dimensions
smallBrush = getResources().getInteger(R.integer.small_size);
mediumBrush = getResources().getInteger(R.integer.medium_size);
largeBrush = getResources().getInteger(R.integer.large_size);
//draw button
drawBtn = (ImageButton)findViewById(R.id.draw_btn);
drawBtn.setOnClickListener(this);
drawView.setBrushSize(mediumBrush);
//erase button
eraseBtn = (ImageButton)findViewById(R.id.erase_btn);
eraseBtn.setOnClickListener(this);
//new button
newBtn = (ImageButton)findViewById(R.id.new_btn);
newBtn.setOnClickListener(this);
//save button
saveBtn = (ImageButton)findViewById(R.id.save_btn);
saveBtn.setOnClickListener(this);
@Override
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
drawView.setErase(false);
drawView.setBrushSize(drawView.getLastBrushSize());
if(view!=currPaint){
drawView.setColor(color);
//update ui
imgView.setImageDrawable(getResources().getDrawable(R.drawable.paint_pressed));
currPaint.setImageDrawable(getResources().getDrawable(R.drawable.paint));
currPaint=(ImageButton)view;
@Override
if(view.getId()==R.id.draw_btn)
brushDialog.setContentView(R.layout.brush_chooser);
smallBtn.setOnClickListener(new OnClickListener(){
@Override
drawView.setErase(false);
drawView.setBrushSize(smallBrush);
drawView.setLastBrushSize(smallBrush);
brushDialog.dismiss();
});
ImageButton mediumBtn =
(ImageButton)brushDialog.findViewById(R.id.medium_brush);
mediumBtn.setOnClickListener(new OnClickListener()
@Override
drawView.setErase(false);
drawView.setBrushSize(mediumBrush);
drawView.setLastBrushSize(mediumBrush);
brushDialog.dismiss();
}
});
largeBtn.setOnClickListener(new OnClickListener(){
@Override
drawView.setErase(false);
drawView.setBrushSize(largeBrush);
drawView.setLastBrushSize(largeBrush);
brushDialog.dismiss();
});
brushDialog.show();
else if(view.getId()==R.id.erase_btn){
brushDialog.setTitle("Eraser size:");
brushDialog.setContentView(R.layout.brush_chooser);
//size buttons
smallBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
drawView.setErase(true);
drawView.setBrushSize(smallBrush);
brushDialog.dismiss();
});
ImageButton mediumBtn =
(ImageButton)brushDialog.findViewById(R.id.medium_brush);
mediumBtn.setOnClickListener(new OnClickListener(){
@Override
drawView.setErase(true);
drawView.setBrushSize(mediumBrush);
brushDialog.dismiss();
});
largeBtn.setOnClickListener(new OnClickListener(){
@Override
drawView.setErase(true);
drawView.setBrushSize(largeBrush);
brushDialog.dismiss();
});
brushDialog.show();
else if(view.getId()==R.id.new_btn){
//new button
newDialog.setTitle("New drawing");
drawView.startNew();
dialog.dismiss();
});
dialog.cancel();
});
newDialog.show();
else if(view.getId()==R.id.save_btn){
//save drawing
saveDialog.setTitle("Save drawing");
saveDialog.setMessage("Save drawing to device Gallery?");
//save drawing
drawView.setDrawingCacheEnabled(true);
//attempt to save
getContentResolver(), drawView.getDrawingCache(),
UUID.randomUUID().toString()+".png", "drawing");
//feedback
if(imgSaved!=null){
savedToast.show();
else{
unsavedToast.show();
drawView.destroyDrawingCache();
});
});
saveDialog.show();
OUTPUT:
RESULT:
Thus an android application that draws basic graphical primitives on the screen
using android studio and sdk was developed successfully.
Ex.No : 5 DEVELOP AN APPLICATION THAT MAKES USE OF DATABASE
Date:
AIM:
To develop an android application that makes use of database using android studio
and sdk.
PROCEDURE:
PROGRAM:
Activity_main.xml:
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myLayout"
android:stretchColumns="0"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="@string/title"
android:layout_x="110dp"
android:layout_y="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:text="@string/roll_no"
android:layout_x="30dp"
android:layout_y="50dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText android:id="@+id/editRollno"
android:inputType="number"
android:layout_x="150dp"
android:layout_y="50dp"
android:layout_width="150dp"
android:layout_height="40dp"/>
<TextView android:text="@string/name"
android:layout_x="30dp"
android:layout_y="100dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText android:id="@+id/editName"
android:inputType="text"
android:layout_x="150dp"
android:layout_y="100dp"
android:layout_width="150dp"
android:layout_height="40dp"/>
<TextView android:text="@string/marks"
android:layout_x="30dp"
android:layout_y="150dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText android:id="@+id/editMarks"
android:inputType="number"
android:layout_x="150dp"
android:layout_y="150dp"
android:layout_width="150dp"
android:layout_height="40dp"/>
<Button android:id="@+id/btnAdd"
android:text="@string/add"
android:layout_x="30dp"
android:layout_y="200dp"
android:layout_width="100dp"
android:layout_height="40dp"/>
<Button android:id="@+id/btnDelete"
android:text="@string/delete"
android:layout_x="150dp"
android:layout_y="200dp"
android:layout_width="100dp"
android:layout_height="40dp"/>n
<Button android:id="@+id/btnModify"
android:text="@string/modify"
android:layout_x="30dp"
android:layout_y="250dp"
android:layout_width="100dp"
android:layout_height="40dp"/>
<Button android:id="@+id/btnView"
android:text="@string/view"
android:layout_x="150dp"
android:layout_y="250dp"
android:layout_width="100dp"
android:layout_height="40dp"/>
<Button android:id="@+id/btnViewAll"
android:text="@string/view_all"
android:layout_x="30dp"
android:layout_y="300dp"
android:layout_width="100dp"
android:layout_height="40dp"/>
<Button android:id="@+id/btnShowInfo"
android:text="@string/show_info"
android:layout_x="150dp"
android:layout_y="300dp"
android:layout_width="150dp"
android:layout_height="70dp"/>
</AbsoluteLayout>
Strings.xml:
<resources>
<string name="app_name">Database1</string>
<string name="action_settings">Settings</string>
<string name="add">Add</string>
<string name="delete">Delete</string>
<string name="modify">Modify</string>
<string name="view">View</string>
</resources>
MainActivity.java:
package com.example.hp.database1;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
EditText editRollno,editName,editMarks;
Button btnAdd,btnDelete,btnModify,btnView,btnViewAll,btnShowInfo;
SQLiteDatabase db;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editRollno=(EditText)findViewById(R.id.editRollno);
editName=(EditText)findViewById(R.id.editName);
editMarks=(EditText)findViewById(R.id.editMarks);
btnAdd=(Button)findViewById(R.id.btnAdd);
btnDelete=(Button)findViewById(R.id.btnDelete);
btnModify=(Button)findViewById(R.id.btnModify);
btnView=(Button)findViewById(R.id.btnView);
btnViewAll=(Button)findViewById(R.id.btnViewAll);
btnShowInfo=(Button)findViewById(R.id.btnShowInfo);
btnAdd.setOnClickListener(this);
btnDelete.setOnClickListener(this);
btnModify.setOnClickListener(this);
btnView.setOnClickListener(this);
btnViewAll.setOnClickListener(this);
btnShowInfo.setOnClickListener(this);
if(view==btnAdd)
if(editRollno.getText().toString().trim().length()==0||
editName.getText().toString().trim().length()==0||
editMarks.getText().toString().trim().length()==0)
return;
"','"+editMarks.getText()+"');");
if(view==btnDelete)
if(editRollno.getText().toString().trim().length()==0)
return;
if(c.moveToFirst())
else
clearText();
if(view==btnModify)
if(editRollno.getText().toString().trim().length()==0)
{
return;
if(c.moveToFirst())
else
clearText();
if(view==btnView)
if(editRollno.getText().toString().trim().length()==0)
return;
}
if(c.moveToFirst())
editName.setText(c.getString(1));
editMarks.setText(c.getString(2));
else
clearText();
if(view==btnViewAll)
if(c.getCount()==0)
return;
while(c.moveToNext())
{
buffer.append("Rollno: "+c.getString(0)+"\n");
buffer.append("Name: "+c.getString(1)+"\n");
buffer.append("Marks: "+c.getString(2)+"\n\n");
if(view==btnShowInfo)
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.show();
editRollno.setText("");
editName.setText("");
editMarks.setText("");
editRollno.requestFocus();
}
OUTPUT:
RESULT:
Thus an android application that makes use of database using android studio and
sdk was developed successfully.
Ex.No : 6 DEVELOP AN APPLICATION THAT MAKES USE OF RSS FEED
Date:
AIM:
To develop an android application that makes use of RSS feed of any website using
android studio and sdk.
PROCEDURE:
PROGRAM:
AndroidMainfest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.rssreader" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
</intent-filter>
</activity>
</application>
</manifest>
Fragment_layout.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
Main.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/fragment_container"
android:layout_height="fill_parent" />
rss_item.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/itemTitle"
android:textSize="18dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
MainActivity.java:
package com.example.hp.rssreader;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (savedInstanceState == null) {
addRssFragment();
transaction.add(R.id.fragment_container, fragment);
transaction.commit();
}
@Override
super.onSaveInstanceState(outState);
outState.putBoolean("fragment_added", true);
Constants.java:
package com.example.hp.rssreader;
/**
* Created by hp on 15-Nov-15.
*/
PcWorldRssParser.java:
package com.example.hp.rssreader;
/**
* Created by hp on 15-Nov-15.
*/
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.util.Xml;
try {
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(inputStream, null);
parser.nextTag();
return readFeed(parser);
} finally {
inputStream.close();
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
if (name.equals("title")) {
title = readTitle(parser);
} else if (name.equals("link")) {
link = readLink(parser);
items.add(item);
title = null;
link = null;
return items;
return link;
return title;
// For the tags title and link, extract their text values.
if (parser.next() == XmlPullParser.TEXT) {
result = parser.getText();
parser.nextTag();
return result;
RssAdapter.java:
package com.example.hp.rssreader;
/**
* Created by hp on 15-Nov-15.
*/
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
this.items = items;
this.context = context;
@Override
return items.size();
@Override
return items.get(position);
@Override
return id;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView.setTag(holder);
} else {
holder.itemTitle.setText(items.get(position).getTitle());
return convertView;
TextView itemTitle;
RssFragment.java:
package com.example.hp.rssreader;
/**
* Created by hp on 15-Nov-15.
*/
import java.util.List;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.ResultReceiver;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
@Override
if (view == null) {
listView.setOnItemClickListener(this);
startService();
} else {
parent.removeView(view);
return view;
intent.putExtra(RssService.RECEIVER, resultReceiver);
getActivity().startService(intent);
/**
* Once the {@link RssService} finishes its task, the result is sent to this
* ResultReceiver.
*/
@SuppressWarnings("unchecked")
@Override
progressBar.setVisibility(View.GONE);
if (items != null) {
listView.setAdapter(adapter);
} else {
Toast.LENGTH_LONG).show();
};
};
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
startActivity(intent);
RssItem.java:
package com.example.hp.rssreader;
/**
* Created by hp on 15-Nov-15.
*/
this.title = title;
this.link = link;
}
return title;
return link;
RssService.java:
package com.example.hp.rssreader;
/**
* Created by hp on 15-Nov-15.
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.net.URL;
import java.util.List;
import org.xmlpull.v1.XmlPullParserException;
import android.app.IntentService;
import android.content.Intent;
import android.os.Bundle;
import android.os.ResultReceiver;
import android.util.Log;
public RssService() {
super("RssService");
@Override
try {
rssItems = parser.parse(getInputStream(RSS_LINK));
} catch (XmlPullParserException e) {
Log.w(e.getMessage(), e);
} catch (IOException e) {
Log.w(e.getMessage(), e);
receiver.send(0, bundle);
try {
return url.openConnection().getInputStream();
} catch (IOException e) {
return null;
}
OUTPUT:
RESULT:
Thus an android application that makes use of RSS feed of any website using android
studio and sdk was developed successfully.
Ex.No : 7 IMPLEMENT AN APPLICATION THAT IMPLEMENTS MULTITHREADING
Date:
AIM:
PROCEDURE:
PROGRAM:
Activity_main.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
android:id="@+id/firstlayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="80dp">
<TextView
android:id="@+id/display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
</RelativeLayout>
<RelativeLayout
android:id="@+id/secondlayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/firstlayout"
android:gravity="center">
<TextView
android:id="@+id/timer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="12"
android:layout_marginTop="80dp"
android:textSize="36dp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/thirdlayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/secondlayout"
android:gravity="center">
<Button
android:id="@+id/clickme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click_me"
android:visibility="invisible"
android:layout_marginTop="100dp"/>
</RelativeLayout>
</RelativeLayout>
MainActivity.java
package com.example.hp.multithreading4;
import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
Button clickme;
TextView timer;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timer=(TextView)findViewById(R.id.timer);
clickme=(Button)findViewById(R.id.clickme);
hand.postDelayed(run,1000);
}
@Override
updateTime();
};
if (Integer.parseInt(timer.getText().toString()) == 0) {
clickme.setVisibility(View.VISIBLE);
} else {
hand.postDelayed(run, 1000);
}
OUTPUT:
RESULT:
INFORMATION
Date:
AIM:
To develop a native application that uses GPS location information using android
studio and sdk.
PROCEDURE:
PROGRAM:
Activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".AndroidLocationActivity" >
<Button
android:id="@+id/btnGPSShowLocation"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/btnNWShowLocation"
android:layout_alignParentTop="true"
android:layout_marginTop="36dp"
android:minWidth="100dp"
<Button
android:id="@+id/btnNWShowLocation"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/btnGPSShowLocation"
android:layout_centerHorizontal="true"
android:layout_marginTop="44dp"
android:minWidth="100dp"
</RelativeLayout>
AndroidLocationActivity.java
package com.example.hp.gpslocation;
/**
* Created by hp on 13-Nov-15.
*/
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
Button btnGPSShowLocation;
Button btnNWShowLocation;
AppLocationService appLocationService;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AndroidLocationActivity.this);
btnGPSShowLocation.setOnClickListener(new View.OnClickListener() {
@Override
.getLocation(LocationManager.GPS_PROVIDER);
if (gpsLocation != null) {
Toast.makeText(
getApplicationContext(),
Toast.LENGTH_LONG).show();
} else {
showSettingsAlert("GPS");
});
btnNWShowLocation.setOnClickListener(new View.OnClickListener() {
@Override
.getLocation(LocationManager.NETWORK_PROVIDER);
if (nwLocation != null) {
Toast.makeText(
getApplicationContext(),
Toast.LENGTH_LONG).show();
} else {
showSettingsAlert("NETWORK");
}
}
});
AndroidLocationActivity.this);
alertDialog
alertDialog.setPositiveButton("Settings",
new DialogInterface.OnClickListener() {
Settings.ACTION_LOCATION_SOURCE_SETTINGS);
AndroidLocationActivity.this.startActivity(intent);
});
alertDialog.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
dialog.cancel();
});
alertDialog.show();
@Override
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
AppLocationService.java:
package com.example.hp.gpslocation;
/**
* Created by hp on 13-Nov-15.
*/
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
Location location;
.getSystemService(LOCATION_SERVICE);
if (locationManager.isProviderEnabled(provider)) {
locationManager.requestLocationUpdates(provider,
if (locationManager != null) {
location = locationManager.getLastKnownLocation(provider);
return location;
return null;
@Override
@Override
@Override
@Override
@Override
return null;
}
OUTPUT:
RESULT:
Thus a native application that uses GPS location information using android studio
and sdk was developed successfully.
Ex.No : 9 IMPLEMENT AN APPLICATION THAT WRITES DATA TO THE SD CARD
Date:
AIM:
To implement an android application that writes data to the SD card using android
studio and sdk.
PROCEDURE:
PROGRAM:
Activity_main.xml:
<LinearLayout
android:id="@+id/widget28"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff6fdff"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android:id="@+id/txtData"
android:layout_width="fill_parent"
android:layout_height="180px"
android:textSize="18sp" />
<Button
android:id="@+id/btnWriteSDFile"
android:layout_width="216dp"
android:layout_height="60px"
<Button
android:id="@+id/btnClearScreen"
android:layout_width="216dp"
android:layout_height="60px"
<Button
android:id="@+id/btnReadSDFile"
android:layout_width="216dp"
android:layout_height="60px"
android:id="@+id/btnClose"
android:layout_width="216dp"
android:layout_height="60px"
</LinearLayout>
AndroidMainfest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.sdcard" >
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
</intent-filter>
</activity>
</application>
</manifest>
MainActivity.java
package com.example.hp.sdcard;
import java.io.*;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
// GUI controls
EditText txtData;
Button btnWriteSDFile;
Button btnReadSDFile;
Button btnClearScreen;
Button btnClose;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnWriteSDFile.setOnClickListener(new OnClickListener() {
try {
myFile.createNewFile();
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append(txtData.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(getBaseContext(),
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}// onClick
}); // btnWriteSDFile
btnReadSDFile.setOnClickListener(new OnClickListener() {
try {
new InputStreamReader(fIn));
txtData.setText(aBuffer);
myReader.close();
Toast.makeText(getBaseContext(),
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}// onClick
}); // btnReadSDFile
btnClearScreen.setOnClickListener(new OnClickListener() {
txtData.setText("");
}); // btnClearScreen
btnClose.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}); // btnClose
}// onCreate
}// AndSDcard
OUTPUT:
RESULT:
Thus an android application to writes data to the SD card using android studio and
sdk was implemented successfully.
Ex.No : 10 IMPLEMENT AN APPLICATION THAT CREATES AN ALERT UPON
RECEIVING MESSAGE
Date:
AIM:
AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.androidsms" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".SmsActivity"
android:label="@string/app_name" >
<intent-filter>
</intent-filter>
</activity>
</application>
</manifest>
Activity_sms.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textViewPhoneNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<EditText
android:id="@+id/editTextPhoneNo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="phone"/>
<TextView
android:id="@+id/textViewMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<EditText
android:id="@+id/editTextSMS"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"/>
<Button android:id="@+id/btnSendSMS"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send SMS"/>
</LinearLayout>
SmsActivity.java
package com.example.hp.androidsms;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
Button sendSMSBtn;
EditText toPhoneNumberET;
EditText smsMessageET;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);
sendSMSBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
sendSMS();
});
try {
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
Toast.LENGTH_LONG).show();
e.printStackTrace();
AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.androidreceivesms" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".SmsActivity"
android:label="@string/app_name" >
<intent-filter>
</intent-filter>
</activity>
</intent-filter>
</receiver>
</application>
</manifest>
Activity_sms.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/MainLayout"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="SMS Inbox"
android:id="@+id/textView"
android:layout_gravity="center_horizontal" />
<ListView android:id="@+id/SMSList"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_margin="5dp" />
</LinearLayout>
SmsActivity.java:
package com.example.hp.androidreceivesms;
/**
* Created by hp on 13-Nov-15.
*/
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
ListView smsListView;
ArrayAdapter arrayAdapter;
return inst;
@Override
super.onStart();
inst = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);
smsListView.setAdapter(arrayAdapter);
smsListView.setOnItemClickListener(this);
refreshSmsInbox();
arrayAdapter.clear();
do {
arrayAdapter.add(str);
} while (smsInboxCursor.moveToNext());
}
arrayAdapter.insert(smsMessage, 0);
arrayAdapter.notifyDataSetChanged();
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
try {
smsMessage += smsMessages[i];
smsMessageStr += smsMessage;
} catch (Exception e) {
e.printStackTrace();
}
SmsBroadcastReceiver.java:
package com.example.hp.androidreceivesms;
/**
* Created by hp on 13-Nov-15.
*/
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
if (intentExtras != null) {
inst.updateList(smsMessageStr);
OUTPUT:
AndroidSMS:
AndroidReceiveSMS:
RESULT:
Thus an android application that creates an alert upon receiving an message using
android studio and sdk was implemented successfully.
Ex.No : 11 WRITE A MOBILE APPLICATION THAT CREATES ALARM CLOCK
Date:
AIM:
To develop an android application that creates alarm clock using android studio and
sdk.
PROCEDURE:
PROGRAM:
Activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity">
<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/alarmTimePicker"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alarm On/Off"
android:id="@+id/alarmToggle"
android:layout_centerHorizontal="true"
android:layout_below="@+id/alarmTimePicker"
android:onClick="onToggleClicked" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text=""
android:id="@+id/alarmText"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:layout_below="@+id/alarmToggle" />
</RelativeLayout>
AlarmActivity.java
package com.example.hp.alarm;
/**
* Created by hp on 13-Nov-15.
*/
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.ToggleButton;
import java.util.Calendar;
AlarmManager alarmManager;
return inst;
@Override
super.onStart();
inst = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (((ToggleButton) view).isChecked()) {
calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());
} else {
alarmManager.cancel(pendingIntent);
setAlarmText("");
}
public void setAlarmText(String alarmText) {
alarmTextView.setText(alarmText);
AlarmReceiver.java
package com.example.hp.alarm;
/**
* Created by hp on 13-Nov-15.
*/
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.content.WakefulBroadcastReceiver;
@Override
if (alarmUri == null) {
alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
ringtone.play();
AlarmService.class.getName());
startWakefulService(context, (intent.setComponent(comp)));
setResultCode(Activity.RESULT_OK);
AlarmService.java
package com.example.hp.alarm;
/**
* Created by hp on 13-Nov-15.
*/
import android.app.IntentService;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
public AlarmService() {
super("AlarmService");
@Override
.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
this).setContentTitle("Alarm").setSmallIcon(R.drawable.images)
.setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
.setContentText(msg);
alamNotificationBuilder.setContentIntent(contentIntent);
alarmNotificationManager.notify(1, alamNotificationBuilder.build());
AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.alarm" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".AlarmActivity"
android:label="@string/app_name" >
<intent-filter>
</intent-filter>
</activity>
<service
android:name=".AlarmService"
android:enabled="true" />
</application>
</manifest>
OUTPUT:
RESULT:
Thus an android application that creates alarm clock using android studio and sdk
was developed successfully.