0% found this document useful (0 votes)
14 views31 pages

Summer 2023 Finall11 - Removed

The document provides a model answer scheme for the Summer 2023 examination in Mobile Application Development, outlining important instructions for examiners regarding assessment criteria. It includes various questions and answers related to Android development, covering topics such as the Android ecosystem, tools for application development, UI design layouts, and the Dalvik Virtual Machine. Additionally, it details the process of obtaining an API key for Google Maps and explains the multimedia framework in Android.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views31 pages

Summer 2023 Finall11 - Removed

The document provides a model answer scheme for the Summer 2023 examination in Mobile Application Development, outlining important instructions for examiners regarding assessment criteria. It includes various questions and answers related to Android development, covering topics such as the Android ecosystem, tools for application development, UI design layouts, and the Dalvik Virtual Machine. Additionally, it details the process of obtaining an API key for Google Maps and explains the multimedia framework in Android.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION

(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
SUMMER – 2023 EXAMINATION
Model Answer – Only for the Use of RAC Assessors

Subject Name: Mobile Application Development Subject Code: 22617


Important Instructions to examiners:
1) The answers should be examined by key words and not as word-to-word as given in the model answer scheme.
2) The model answer and the answer written by candidate may vary but the examiner may try to assess the
understanding level of the candidate.
3) The language errors such as grammatical, spelling errors should not be given more Importance (Not applicable for
subject English and Communication Skills.
4) While assessing figures, examiner may give credit for principal components indicated in the figure. The figures
drawn by candidate and model answer may vary. The examiner may give credit for any equivalent figure drawn.
5) Credits may be given step wise for numerical problems. In some cases, the assumed constant values may vary and
there may be some difference in the candidate’s answers and model answer.
6) In case of some questions credit may be given by judgement on part of examiner of relevant answer based on
candidate’s understanding.
7) For programming language papers, credit may be given to any other program based on equivalent concept.
8) As per the policy decision of Maharashtra State Government, teaching in English/Marathi and Bilingual (English +
Marathi) medium is introduced at first year of AICTE diploma Programme from academic year 2021-2022. Hence if
the students in first year (first and second semesters) write answers in Marathi or bilingual language (English
+Marathi), the Examiner shall consider the same and assess the answer based on matching of concepts with model
answer.

Q. Sub Answer Marking


No. Q. Scheme
N.

1 Attempt any FIVE of the following: 10 M

a) State Android ECO System. 2M

Ans Android Ecosystem Any 4


points
2M

 Ecosystem in Market terminology refers to the inter-dependence between demand


and supply.
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
 In the Android ecosystem this translates to inter-dependence between users,
developers, and equipment makers. One cannot exist without the other:
 Google develops android
 Users buy devices and applications
 Original Equipment makers sell devices, sometimes bundled with applications
 Developers buy devices, then make and sell applications
 Freelance Android Developer developers have the skills to contribute to the ecosystem
for android development , they are who creates their own applications and published
them on googles play store.

b) List various tools for android application development 2M

Ans  Android Studio Any


 ADB (Android Debug Bridge)
 AVD Manager 4 tools
 Eclipse 2M
 Fabric
 FlowUp
 GameMaker: Studio
 Genymotion
 Gradle IntelliJ IDEA
c) List various layouts used in android UI design. 2M

Ans  Linear Layout Any


 Absolute Layout
4 layouts
 Frame Layout
 Table Layout 2M
 Relative Layout
d) Name any four attributes of Edit Text control. 2M

Ans android:id Any


android: gravity
android: text 4 attributes
android: hint 2M
android: textColor
android: textSize
android: textStyle
android: background

e) State the use of fragments in android App development. 2M

Ans Android Fragment is the part of activity, it is also known as sub-activity. There can be more Explanation
2M
than one fragment in an activity.

Fragments represent multiple screen inside one activity.


MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
We can create Fragments by extending Fragment class or by inserting a Fragment into our
Activity layout by declaring the Fragment in the activity’s layout file, as
a <fragment> element.

Fragments were added in Honeycomb version of Android i.e API version 11. We can add,
replace or remove Fragment’s in an Activity while the activity is running.
Fragment can be used in multiple activities.
We can also combine multiple Fragments in a single activity to build a multi-plane UI.
We can only show a single Activity on the screen at one given point of time so we were not
able to divide the screen and control different parts separately. With the help of Fragment’s
we can divide the screens in different parts and controls different parts separately

f) Define SMS service in android application development. 2M

Ans SMS Any

 In Android, you can use SmsManager API or devices Built-in SMS application to 4 points
send SMS's
2M
 Android SMS is stored in PDU (protocol description unit) format
 SmsManager class takes care of sending the SMS message.
 We just need to get an instance of it and send the SMS message.
 We need to add permission to SEND_SMS in the Android manifest file.

SmsManager smsManager = SmsManager.getDefault();


smsManager.sendTextMessage("phoneNo", null, "sms message", null, null);
g) List different types of sensors used in android. 2M

Ans The android platform supports three broad categories of sensors. 2 M for List

 Motion Sensors

These are used to measure acceleration forces and rotational forces along with three
axes.

 Environmental sensors

These are used to measure the environmental changes such as temperature, humidity etc.

 Position sensors

These are used to measure the physical position of device.


MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
2. Attempt any THREE of the following: 12 M

a) Describe android and importance of OHA. 4M

Ans Android Explain


android 2 M
Android is an open source and Linux-based Operating System. It is designed primarily for touch
screen mobile devices such as smartphones and tablet computers. Importance
2M
Android offers a unified approach to application development for mobile devices, which means
developers need only develop for Android, and their applications should be able to run on different
devices powered by Android.

Android was developed by the Open Handset Alliance, led by Google, and other companies.

OHA

 The Open Handset Alliance (OHA) is a business alliance that was created for the
purpose of developing open mobile device standards.
 The OHA has approximately 80 member companies, including HTC, Dell, Intel,
Motorola, Qualcomm and Google.
Importance of OHA

 Lower overall handset costs: Opens up resources, which facilitates the focus on
creating innovative applications, solutions and services. 
 Developer-friendly environment: In the open-source community, developers share
notes to expedite application development. 
 Post-development: Provides an ideal channel for application marketing and
distribution.
b) Explain Dalvik Virtual Machine and state its importance. (Pt 1 ka ans hai) 4M

Ans Explain 2
M
Importance
2M
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______

Explain Dalvik Virtual Machine and state its importance.


The Dalvik Virtual Machine (DVM) is a virtual machine specially designed and optimized for
Android mobile devices. It is used to run Android applications efficiently on devices with limited
memory, processing power, and battery life.

Importance of Dalvik Virtual Machine:

1. Optimization for Mobile Devices: Dalvik is optimized to run multiple instances efficiently,
which is ideal for mobile environments.
2. Efficient Memory Management: Dalvik uses a register-based architecture which makes it
more memory-efficient compared to traditional stack-based virtual machines like the JVM.
3. Battery Efficiency: It consumes less power, which helps in improving battery performance.
4. Performance: Dalvik provides good performance in terms of speed and execution of Android
applications.
5. Multi-tasking Support: Supports running multiple applications simultaneously without
significant performance loss.
6. Conversion of Java Bytecode: Java .class files are converted into .dex (Dalvik
Executable) files, which are smaller and optimized for Android.

Working with Dalvik (with reference to diagram):

 The Java source code is compiled by the javac compiler into .class files.
 The dx tool then converts all .class files into a single .dex file.
 The Android Asset Packaging Tool (aapt) packages these .dex files with other resources
into an .apk file.
 This .apk file runs on the Dalvik Virtual Machine.

c) Describe the process of getting the map API key. 4M

Ans Creating API keys Correct


Steps 4
The API key is a unique identifier that authenticates requests associated with your project for marks
usage and billing purposes. You must have at least one API key associated with your project.

1. Browse the site on your browser. https://console. developers. google.com/project


2. Login with your google account.
3. Create a new project by clicking on Create Project option.
4. Add your project name and organization name in the fields present on the screen.
5. Now click on APIs and Services.
6. Enable APIs and services.
7. Select Google maps Android API
8. To create an API key for Maps click on Create credentials option and then select
the API key option

Click on the API key option to generate your API key. After clicking on this option your API
key will be generated
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
d) Explain multimedia framework in android. 4M

Ans Proper
Explanation
4 marks

Multimedia Framework
 Java Class of Media
This is the top layer where media-related classes like MediaPlayer and MediaRecorder are
defined for Android apps to use.

 Media JNI (Java Native Interface)


This layer helps Java code communicate with native (C/C++) code. It acts as a bridge
between Java classes and the native library.

 Native C Library
This includes core libraries like libmedia, libaudioclient, libmediaservice, etc., written
in C/C++. These handle the real processing of media tasks like playing or recording
audio/video.

 Media Server
The Media Server is a system service that handles all media-related requests like playing or
recording media. It communicates with the native library through Android’s Binder IPC.

 Media Player / Media Recorder


These are actual components (Java APIs) used by developers to control playback or recording.
They internally communicate with Media Server through the native libraries.

 PV Player / PV Author
These are part of the OpenCore engine used internally for handling playback (PVPlayer) and
content creation (PVAuthor).
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
3.a. Describe various installation steps of android studio and its environment. steps 4
marks

Step 1: Go to https://developer.android.com/android-studio/download to get the Android Studio


executable or zip file.
Step 2:
● Click on the Download Android Studio Button.
● Click on the “I have read and agree with the above terms and conditions” checkbox
followed by the download button
● Click on the Save file button in the appeared prompt box and the file will start
downloading.

Step 3: After the downloading has finished, open the file from downloads and will prompt the
following dialog box. Click on next. In the next prompt, it’ll ask for a path for installation.
Choose a path and hit next.

Step 4: It will start the installation, and once it is completed, it will be like the image shown
below.

Step 5: Once “Finish” is clicked, it will ask whether the previous settings need to be imported
[if the android studio had been installed earlier], or not. It is better to choose the ‘Don’t import
Settings option’. Click the OK button.

Step 6: This will start the Android Studio. Meanwhile, it will be finding the available SDK
components.

Step 7: After it has found the SDK components, it will redirect to the Welcome dialog box
Choose Standard and click on Next.

Step 8: Now it is time to download the SDK components. Click on Finish. Components begin
to download let it complete. The Android Studio has been successfully configured. Now
it’s time to launch and build apps. Click on the Finish button to launch it.

Step 9: Click on Start a new Android Studio project to build a new app.

b) Explain Gridview with its attributes with suitable example. 4M


MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
Ans GridView : (1 M for
explanation
Android GridView shows items in two-dimensional scrolling grid (rows & columns) and the of
grid items are not necessarily predetermined but they automatically inserted to the layout GridView,1
using a ListAdapter. M for
explaining
GridView Attributes
attributes, 2
Following are the important attributes specific to GridView – M example)
[any two
attributes
Sr.No Attribute & Description should be
considered
1 android:id
for 1 M,
This is the ID which uniquely identifies the layout. any valid
example of
2 android:columnWidth GridView
for 2 M]
This specifies the fixed width for each column. This could be in px, dp,
sp, in, or mm.

3 android:gravity
Specifies the gravity within each cell. Possible values are top, bottom,
left, right, center, center_vertical, center_horizontal etc.
4 android:horizontalSpacing
Defines the default horizontal spacing between columns. This could be
in px, dp, sp, in, or mm.
5 android:numColumns
Defines how many columns to show. May be an integer value, such as
"100" or auto_fit which means display as many columns as possible to
fill the available space.

6 android:stretchMode
Defines how columns should stretch to fill the available empty space, if
any. This must be either of the values −
 none − Stretching is disabled.
 spacingWidth − The spacing between each column is stretched.
 columnWidth − Each column is stretched equally.
 spacingWidthUniform − The spacing between each column is
uniformly stretched..
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
7 android:verticalSpacing
Defines the default vertical spacing between rows. This could be in px,
dp, sp, in, or mm.

activity_main.xml (2 Marks)
xml
CopyEdit
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp" />

MainActivity.java (3 Marks)
java
CopyEdit
package com.example.gridviewdemo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;

public class MainActivity extends Activity {


String[] items = {"One", "Two", "Three", "Four", "Five", "Six"};

protected void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

GridView grid = findViewById(R.id.gridView);


ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, items);
grid.setAdapter(adapter);
}
}
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
c) Explain text to speech conversion technique in android 4M

Ans Text to Speech converts the text written on the screen to speech like you have written “Hello Proper
World” on the screen and when you press the button it will speak “Hello World”. Text-to- explanation
speech is commonly used as an accessibility feature to help people who have trouble reading

on-screen text, but it’s also convenient for those who want to be read too. This feature has 4 marks
come out to be a very common and useful feature for the users.

In android, by using TextToSpeech class we can easily convert our text into voice and it
supports different types of speaking languages. We can choose the speaking language based
on our requirements in the android application.
The android TextToSpeech instance can only be used to synthesize text once it has completed
its initialization so implement TextToSpeech.
OnInitListener to notify the completion of initialization. During the initialization, we can set
the audio pitch rate, audio speed, type of language to speak, etc. based on our requirements.

java
package com.example.ttsdemo;

import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {


TextToSpeech tts;

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

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

tts = new TextToSpeech(this, status -> {


if (status == TextToSpeech.SUCCESS) {
tts.setLanguage(Locale.US);
}
});

speakBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tts.speak("thanks", TextToSpeech.QUEUE_FLUSH, null, null);
}
});
}
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______

@Override
protected void onDestroy() {
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
}

Xml
<?xml version="1.0" encoding="utf-8"?>
<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">

<Button
android:id="@+id/speakBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CLICK TO SPEAK 'thanks'" />
</LinearLayout>

d) Describe steps for deploying android application on Google Play Store. 4M

Steps to deploy and Android Application on Google Play Store:

Step 1: Make a Developer Account


Step 2: Plan to Sell? Link Your Merchant Account
Step 3: Create an App
Step 4: Prepare Store Listing
Step 5: Upload APK to an App Release
Step 6: Provide an Appropriate Content Rating Step 7:
Set Up Pricing & Distribution
Step 8: Rollout Release to Publish Your App

🔹 Steps to Deploy Android Application on Google Play Store

Step 1: Create a Developer Account


Before you can publish any app on Google Play, you need to create a Developer Account. You
can easily sign up for one using your existing Google Account. You’ll need to pay a one-time
registration fee of $25

Step 2: Plan to Sell? Link Your Merchant Account


If to publish a paid app or plan to sell in-app purchases, you need to create a payments center
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
profile, i.e. a merchant account. A merchant account will let you manage your app sales and
monthly payouts, as well as analyze your sales reports right in your Play Console.

Step 3: Create an App


Now you have create an application by clicking on 'Create Application'. Here you have to
select your app’s default language from the drop-down menu and then type in a title for your
app

Step 4: Prepare Store Listing


Before you can publish your app, you need to prepare its store listing. These are all the details
that will show up to customers on your app’s listing on Google Play.
The information required for your store listing is divided into several categories such as
Product Details title, short and full description of the app,
Graphic Assets where you can add screenshots, images, videos, promotional graphics, and
icons that showcase your app’s features and functionality.
Languages & Translations, Categorization where in category can be selected to which your
app belong to. Contact Details , Privacy Policy

Step 5: Upload APK to an App Release


Finally upload your app, by uploading APK file. Before you upload APK, you need to create
an app release. You need to select the type of release you want to upload your first app version
to. You can choose between an internal test, a closed test, an open test, and a production
release

Step 6: Provide an Appropriate Content Rating


To rate your app, you need to fill out a content rating questionnaire An appropriate content
rating will also help you get to the right audience,

Step 7: Set Up Pricing & Distribution


to determine your app’s monetization strategy. Once you know how your app is going to make
money, you can go ahead and set up your app as free or paid.
You can always change your app from paid to free later, but you cannot change a free app to
paid.

Step 8: Rollout Release to Publish Your App


Once you’re sure about the correctness of the details, select your app and navigate to ‘Release
management’ – ‘App releases.’ ‘Review’ to be taken to the ‘Review and rollout release’ screen.
Here, you can see if there are any issues or warnings you might have missed out on.
Finally, select ‘Confirm rollout.’ This will also publish your app to all users in your target
countries on Google Play
4. Attempt any THREE of the following: 12 M

a) Describe directory structure and its components. 4M


MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
The android project contains different types of app modules, source code files, and resource
files.
 Manifests Folder

 Java Folder

 res (Resources) Folder

 Drawable Folder
 Layout Folder
 Mipmap Folder
 Values Folder
4. Gradle Scripts

📁 Manifests Folder
The Manifests folder contains the AndroidManifest.xml file which defines essential
information about the application. This includes the Android version, app name, permissions,
and components like activities, services, and broadcast receivers. It acts as a bridge between
the Android OS and the application, helping the system understand how to run and manage the
app.

📁 Java Folder
The Java folder holds all the Java source code files used in the app, including the main activity
file like MainActivity.java and other supporting or test files. When a project is created, this
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
folder is automatically generated. It is where the app’s logic and functionality are implemented
using Java.

📁 Resource (res) Folder


The res folder contains all the non-code resources such as images, XML layout files, strings,
colors, and styles. These resources are important for designing the app's user interface and
providing user-facing content in a manageable way.

🔹 res/drawable folder
This folder stores all image files used in the application, such as .png, .jpg, or vector files.
These images are used in layouts, buttons, icons, and other design elements.

🔹 res/layout folder
The layout folder contains XML files that define the structure and design of the app’s user
interface. Files like activity_main.xml are used to arrange widgets like buttons, text fields,
and images on the screen.

🔹 res/mipmap folder
This folder is used to store launcher icons for the app. It includes different versions of the app
icon for different screen densities like mdpi, hdpi, xhdpi, etc., ensuring that the app icon
looks good on all devices.

🔹 res/values folder
The values folder includes XML files that store strings, colors, dimensions, and style
definitions used in the app. One important file here is strings.xml, which contains all the
text used in the app. This helps in organizing content and supporting multiple languages.

⚙️ Gradle Scripts
Gradle is a build automation tool that manages how the app is compiled and built. The Gradle
Scripts section contains two important files: build.gradle (Project level) and
build.gradle (App level). These files define dependencies, plugins, and other settings
required to build, test, and run the app successfully.
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
b) Develop an android application for Date and Time Picker.

✅ activity_main.xml (2 Marks)
xml
CopyEdit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">

<Button
android:id="@+id/btnDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select Date" />

<Button
android:id="@+id/btnTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select Time"
android:layout_marginTop="10dp" />

</LinearLayout>

✅ MainActivity.java
java
CopyEdit
package com.example.datetimepicker;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import java.util.Calendar;

public class MainActivity extends Activity {


Button btnDate, btnTime;

protected void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnDate = findViewById(R.id.btnDate);
btnTime = findViewById(R.id.btnTime);

btnDate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Calendar c = Calendar.getInstance();
DatePickerDialog dp = new
DatePickerDialog(MainActivity.this,
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
null, c.get(Calendar.YEAR), c.get(Calendar.MONTH),
c.get(Calendar.DAY_OF_MONTH));
dp.show();
}
});

btnTime.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Calendar c = Calendar.getInstance();
TimePickerDialog tp = new
TimePickerDialog(MainActivity.this,
null, c.get(Calendar.HOUR_OF_DAY),
c.get(Calendar.MINUTE), false);
tp.show();
}
});
}
}

c) Explain property animation method to animate the properties of view object with example. 4M

A property animation changes a property's (a field in an object) value over a specified length
of time. To animate something, you specify the object property that you want to animate, such
as an object's position on the screen, how long you want to animate it for, and what values you
want to animate between.The property animation system lets you define the following
characteristics of an animation:
Duration: You can specify the duration of an animation. The default length is 300 ms.
A property animation changes a property's (a field in an object) value over a specified length
of time. To animate something, you specify the object property that you want to animate, such
as an object's position on the screen, how long you want to animate it for, and what values
you want to animate between.The property animation system lets you define the following
characteristics of an animation:
Time interpolation: You can specify how the values for the property are calculated as a
unction of the animation's current elapsed time.
Repeat count and behavior: You can specify whether or not to have an animation repeat when it
reaches the end of a duration and how many times to repeat the animation. You can also specify
whether you want the animation to play back in reverse. Setting it to reverse plays the animation
forwards then backwards repeatedly, until the number of repeats is reached.
Animator sets: You can group animations into logical sets that play together or sequentially or after
specified delays.
Frame refresh delay: You can specify how often to refresh frames of your animation. The default is
set to refresh every 10 ms, but the speed in which your application can refresh frames is ultimately
dependent on how busy the system is overall and how fast the system can service the underlying
timer.
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______

🔹 activity_main.xml (2 Marks)
xml
CopyEdit
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
android:id="@+id/btnAnimate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Move"
android:layout_centerInParent="true"/>
</RelativeLayout>

🔹 MainActivity.java (3 Marks)
CopyEdit
package com.example.animationdemo;

import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button btnAnimate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnAnimate = findViewById(R.id.btnAnimate);
ObjectAnimator anim = ObjectAnimator.ofFloat(btnAnimate,
"translationX", 0f, 300f);
anim.setDuration(1000);
anim.start();
}
}

✅ activity_main.xml

Place this in res/layout/

xml
CopyEdit
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/imageView"
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
android:src="@drawable/my_image" <!-- Put any image named
my_image.png in drawable -->
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:scaleType="centerCrop" />
</RelativeLayout>

✅ MainActivity.java

Zoom-in effect using code only (no zoom_in.xml needed).

java
CopyEdit
import android.os.Bundle;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {


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

ImageView image = findViewById(R.id.imageView);

ScaleAnimation zoom = new ScaleAnimation(


1.0f, 1.5f, // Start and end X scale
1.0f, 1.5f, // Start and end Y scale
ScaleAnimation.RELATIVE_TO_SELF, 0.5f,
ScaleAnimation.RELATIVE_TO_SELF, 0.5f
);
zoom.setDuration(500);
zoom.setFillAfter(true); // Keeps the image zoomed in after
animation
image.startAnimation(zoom);
}
}
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
d) Describe permissions required for android application development. (Edited in other 4M
paper)
Ans (2 Marks
Android uses a sandbox and permission-based security model. Each app runs in its own Dalvik
for two
virtual machine with a unique user ID, keeping it isolated from other apps. This prevents one app
permission
from accessing another app’s data. Every app is digitally signed with a certificate, which helps
explanation
identify the app's author. The user ID is permanent, and apps with the same certificate and ID can
)
share processes. This ensures malicious apps cannot access or damage genuine app data. Apps must
also declare all required permissions during installation for user approval.

Normal permissions cover areas where your app needs to access data or resources outside
the app’s sandbox, but where there’s very little risk to the user’s privacy or the operation of
other apps. For example, permission to set the time zone is a normal permission. If an app
declares in its manifest that it needs a normal permission, the system automatically grants the
app that permission at install time. The system doesn’t prompt the user to grant normal
permissions, and users cannot revoke these permissions.
Signature permissions: The system grants these app permissions at install time, but only
when the app that attempts to use permission is signed by the same certificate as the app that
defines the permission.

e) Develop an android application to show current location of an user's car 4M

package com.example.maplocation;

import android.os.Bundle;
import androidx.fragment.app.FragmentActivity;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
import com.google.android.gms.location.*;
import android.Manifest;
import android.content.pm.PackageManager;
import androidx.core.app.ActivityCompat;

public class MainActivity extends FragmentActivity implements OnMapReadyCallback {


GoogleMap map;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment mf = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
mf.getMapAsync(this);
}

public void onMapReady(GoogleMap googleMap) {


map = googleMap;
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
else
map.setMyLocationEnabled(true);
}
}
Xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />

manifest
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

5. Attempt any TWO of the following: 12 M

a) Design a employee registration form using UI component. 6M

activity_main.xml

xml
CopyEdit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="16dp"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
android:id="@+id/etName"
android:hint="Employee Name"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<EditText
android:id="@+id/etEmail"
android:hint="Email"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<EditText
android:id="@+id/etPhone"
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
android:hint="Phone Number"
android:inputType="phone"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<EditText
android:id="@+id/etDept"
android:hint="Department"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<Button
android:id="@+id/btnSubmit"
android:text="Register"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>

b) Develop an android application for taking student feedback with database 6M


connectivity.

✅ Minimal activity_main.xml
xml
CopyEdit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:orientation="vertical">

<EditText android:id="@+id/editname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name"/>

<EditText android:id="@+id/editclass"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Class"/>

<EditText android:id="@+id/editfeedback"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Feedback"/>

<Button android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Submit"/>
</LinearLayout>

✅ Minimal DBHandler.java
java
CopyEdit
package com.example.feedback;
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
import android.content.Context;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;

public class DBHandler extends SQLiteOpenHelper {


public DBHandler(Context c) {
super(c, "StudentDB", null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS Feedback(name TEXT, class
TEXT, feedback TEXT)");
}
public void onUpgrade(SQLiteDatabase db, int oldV, int newV) {
db.execSQL("DROP TABLE IF EXISTS Feedback");
onCreate(db);
}
}

✅ Minimal MainActivity.java
java
CopyEdit
package com.example.feedback;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
import android.database.sqlite.*;

public class MainActivity extends Activity {


EditText name, stdClass, feedback;
SQLiteDatabase db;

protected void onCreate(Bundle b) {


super.onCreate(b);
setContentView(R.layout.activity_main);

name = findViewById(R.id.editname);
stdClass = findViewById(R.id.editclass);
feedback = findViewById(R.id.editfeedback);
Button btn = findViewById(R.id.button);

db = new DBHandler(this).getWritableDatabase();

btn.setOnClickListener(v -> {
db.execSQL("INSERT INTO Feedback VALUES('" +
name.getText() + "','" +
stdClass.getText() + "','" +
feedback.getText() + "')");
Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
name.setText(""); stdClass.setText(""); feedback.setText("");
});
}
}

✅ MainActivity.java (Simple Old Style – 3 Marks)


MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
java
CopyEdit
package com.example.feedback;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.database.sqlite.SQLiteDatabase;

public class MainActivity extends Activity {

EditText name, stdClass, feedback;


Button btn;
SQLiteDatabase db;

protected void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

name = findViewById(R.id.editname);
stdClass = findViewById(R.id.editclass);
feedback = findViewById(R.id.editfeedback);
btn = findViewById(R.id.button);

db = openOrCreateDatabase("StudentDB", MODE_PRIVATE, null);


db.execSQL("CREATE TABLE IF NOT EXISTS Feedback(name TEXT, class
TEXT, feedback TEXT)");

btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String n = name.getText().toString();
String c = stdClass.getText().toString();
String f = feedback.getText().toString();

db.execSQL("INSERT INTO Feedback VALUES('" + n + "', '" + c


+ "', '" + f + "')");
Toast.makeText(MainActivity.this, "Feedback Saved",
Toast.LENGTH_SHORT).show();
}
});
}
}

c) Explain Geocoding and Reverse Geocoding with suitable example. 6M

Ans Geocoding is the process of transforming a street address or other description of a (Geocoding ,
location into a (latitude, longitude) coordinate. Reverse
Geocoding
Reverse geocoding is the process of transforming a (latitude, longitude) coordinate into a Explanation :
(partial) address. 3 M,
Example :
The amount of detail in a reverse geocoded location description may vary, for example 3M)
one might contain the full street address of the closest building, while another might
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
contain only a city name and postal code.
The Geocoder class is used for handling geocoding and reverse geocoding.

✅ activity_main.xml (2 Marks)

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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="16dp"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
android:id="@+id/editAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Address" />

<Button
android:id="@+id/btnGeocode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Get LatLng" />

<EditText
android:id="@+id/editLat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Latitude" />

<EditText
android:id="@+id/editLng"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Longitude" />

<Button
android:id="@+id/btnReverse"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Get Address" />

<TextView
android:id="@+id/textResult"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

</LinearLayout>
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______

✅ MainActivity.java (3 Marks)
java
CopyEdit
package com.example.geocodetest;

import android.app.Activity;
import android.os.Bundle;
import android.location.Geocoder;
import android.location.Address;
import android.view.View;
import android.widget.*;
import java.util.*;

public class MainActivity extends Activity {

EditText editAddress, editLat, editLng;


TextView textResult;
Button btnGeocode, btnReverse;

protected void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

editAddress = findViewById(R.id.editAddress);
editLat = findViewById(R.id.editLat);
editLng = findViewById(R.id.editLng);
textResult = findViewById(R.id.textResult);
btnGeocode = findViewById(R.id.btnGeocode);
btnReverse = findViewById(R.id.btnReverse);

btnGeocode.setOnClickListener(v -> {
String addr = editAddress.getText().toString();
Geocoder geocoder = new Geocoder(MainActivity.this);
List<Address> list = geocoder.getFromLocationName(addr, 1);
if (!list.isEmpty()) {
double lat = list.get(0).getLatitude();
double lng = list.get(0).getLongitude();
textResult.setText("Lat: " + lat + ", Lng: " + lng);
}
});

btnReverse.setOnClickListener(v -> {
double lat = Double.parseDouble(editLat.getText().toString());
double lng = Double.parseDouble(editLng.getText().toString());
Geocoder geocoder = new Geocoder(MainActivity.this);
List<Address> list = geocoder.getFromLocation(lat, lng, 1);
if (!list.isEmpty()) {
String address = list.get(0).getAddressLine(0);
textResult.setText("Address: " + address);
}
});

6. Attempt any TWO of the following: 12 M

a) Design an android application to show the list of paired devices by Bluetooth. 6M


MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______

✅ activity_main.xml (2 Marks)
xml
CopyEdit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

✅ AndroidManifest.xml (1 Mark) – Only permissions needed


xml
CopyEdit
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

✅ MainActivity.java (3 Marks)
java
CopyEdit
package com.example.bluetoothlist;

import android.app.Activity;
import android.os.Bundle;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.widget.ListView;
import android.widget.ArrayAdapter;

import java.util.ArrayList;
import java.util.Set;

public class MainActivity extends Activity {

ListView listView;

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

listView = findViewById(R.id.listView);
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();

if (adapter != null && adapter.isEnabled()) {


Set<BluetoothDevice> devices = adapter.getBondedDevices();
ArrayList<String> list = new ArrayList<>();
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______

for (BluetoothDevice d : devices) {


list.add(d.getName() + "\n" + d.getAddress());
}

ArrayAdapter adapterList = new ArrayAdapter(this,


android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapterList);
}
}
}

b) Develop an android application for sending Short Message Service (SMS). 6M

🔹 activity_main.xml (2 Marks)
xml
CopyEdit
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">

<EditText
android:id="@+id/etNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Number"
android:inputType="phone" />

<EditText
android:id="@+id/etMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Message" />

<Button
android:id="@+id/btnSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send SMS" />
</LinearLayout>

🔹 MainActivity.java (3 Marks)
java
CopyEdit
package com.example.sendsms;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______

public class MainActivity extends AppCompatActivity {


EditText etPhone, etMessage;
Button btnSend;

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

etPhone = findViewById(R.id.etPhone);
etMessage = findViewById(R.id.etMessage);
btnSend = findViewById(R.id.btnSend);

ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.SEND_SMS}, 1);

btnSend.setOnClickListener(v -> {
String phone = etPhone.getText().toString();
String msg = etMessage.getText().toString();
SmsManager.getDefault().sendTextMessage(phone, null, msg, null,
null);
Toast.makeText(this, "SMS Sent", Toast.LENGTH_SHORT).show();
});
}
}

🔹 SMSReceiver.java
java
package com.example.smsapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;

public class SMSReceiver extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
for (int i = 0; i < pdus.length; i++) {
byte[] pdu = (byte[]) pdus[i];
SmsMessage message = SmsMessage.createFromPdu(pdu);
String sender = message.getOriginatingAddress();
String body = message.getMessageBody();
Toast.makeText(context, "From: " + sender + "\n" + body,
Toast.LENGTH_LONG).show();
}
}
}
}
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
}

🔹 Minimal AndroidManifest.xml
xml
CopyEdit
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />

<receiver
android:name=".SMSReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

c) Explain how linear and frame layout is used to design an android application with 6M
suitable example.
Ans LinearLayout (2 M : For
each layout
• Android LinearLayout is a view group that aligns all children in either vertically explanation,
or horizontally. 1 M for
each layout
 Linear layout in Android allow us to arrange components horizontally in a single
example)
column or
vertically in a single row.
• Vertically or horizontally direction depends on attribute android: orientation.
• Linear layout is simple and easy to use, it creates a scroll bar if the length of the
window exceeds the length of the screen.
• Linear Layout are one of the simplest and common type of layouts used by
Android developers to keep controls within their interfaces. The linear layout
works as much as its name implies, it organizes the controls either a vertical or
horizontal pattern.
• When the layout’s orientation is set to vertical, all child controls within
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
organized in a single column, and when the layout’s orientation is set to
horizontal, all child controls within in single row.

Example

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


<LinearLayoutandroid:layout_width="368dp"
android:layout_height="495dp"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:id="@+id/button5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:id="@+id/button6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:id="@+id/button7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button3" />
<Button
android:id="@+id/button8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button4" />
</LinearLayout>

Frame Layout

• Frame Layout is designed to block out an area on the screen to display a single item.
Generally, FrameLayout should be used to hold a single child view, because it can be
difficult to organize child views in a way that's scalable to different screen sizes without
the children overlapping each other.
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
(Autonomous)
(ISO/IEC - 27001 - 2013 Certified)
_______
• Frame layouts are one of the simplest layout types used to organize controls within the
user interface of an Android application. The purpose of FrameLayout is to allocate an
area of screen.
• Frame layouts are one of the most efficient types of layouts used by Android developers
to organize view controls. They are used less often than some other layouts, simply
because they are generally used to display only one view, or views which overlap.
• The frame layout is often used as a container layout, as it generally only has a single child
view (often another layout, used to organize more than one view).
Example

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


<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/framelayout"
android:layout_width="200dp"
android:layout_height="300dp"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="90dp"
android:layout_marginLeft="20dp"
android:text="Button"/>
<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:textSize="20sp"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:background="@color/colorPrimary"
android:textColor="#fff"
android:text="I am TextView" />
</FrameLayout

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy