Sunteți pe pagina 1din 9

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei


Facultatea Calculatoare, Informatic i Microelectronic

Raport
Lucrarea de laborator nr. 1
Programarea Aplicaiilor Incorporate i Independente de Platform

Tema: UI Kit Lucrarea Nr.1

A efectuat: St. gr. TI-141 Guba D.


A verificat:

Chiinu 2016
Obiective : Dezvoltarea unei aplicaii pe una din platformele stabilite la Laboratorul Nr.0 , utiliznd
mediul de dezvoltare corespunztor acesteia.
Scopul:
De prezentat o aplicaie ce ruleaz pe un dispozitiv sau emulator, ce va conine pe interfaa sa,
urmtoarele elemente:

1. 4 butoane (ce vor executa condiiile de mai jos)


2. 1 TextBox (pentru input)
3. 2 Radio butoane (pentru camera fa, spate)

Condiii:
De utilizat componentele UI pentru a realiza urmtoarele condiii:

1. De creat un push notification pe ecranul dispozitivului care se va trata peste 10s.


2. De utilizat browserul intern al dispozitivului, pentru a iniializa o cutare n Google,
conform cuvntului cheie introdus n TextBox.
3. De rulat evenimentul de lucru a camerei frontale i/sau spate la selectarea unuia din cele 2
radio butoane propuse.
4. de tratat evenimentul de captare a pozei executate cu una din cele doua camere, i de afiat
ntr-o alt Activitate
5. este un punct la dorina voastr (sau un brainstorming)

Realizarea lucrrii
1.0 Deschiderea Navigatoului
Pentru crearea browserului am utilizat un button si un EditText. In EditText scriem texul
dorit si la apasarea butonului Search are loc deschiderea browserului. Pentru a elabora programul ce
va deschide Navigatorul va fi nevoie de preluarea adresei din EditText dup care creem un Intent ce
va transmite un mesaj navigatorului cu aceast adres i pornim o nou activitate folosind funcia
startActivity() ce va porni Navigatorul i n care vom transmite un intent cu adresa noastr. (vezi
figura 1).

Figura 1. Browserul

2
1.1 Lucrul cu Camera

Este nevoie de creat 2 RadioButton-uri pentru alegerea camerei front, back si de un buton care va
crea intentul pentru a accesa camera telefonului. (figura 2.)

Figura 2. Camera

1.2. Push Notification

Trebuie de creat un buton pentru a crea un eveniment de notificare care va fi tratat peste 10 secunde.
Pentru a realiza sarcina am creat un fir de executie care timp de 10 secunde se afla in sleep si pe
urma imi afiseaza notificarea dorita (figura 3).

1.3 Change notification text

Aici am creat un array de stringuri si un contor iar la fiecare apasare de buton contorul se
incrementeaza pentru a accesa elementul dorit din array (figura 3).

Figura 4. Notificarea

Concluzii:
In laboratorul dat am invatat cum sa lucram cu Intent-uri pentru a initializa anumite activitati.
Am lucrat cu browserul, cu radio butoane si cu butoanele simple pentru a putea realiza sarcina.
Personal am lucrat si cu xml pentru crearea interfetei grafice.

3
Anexa A activity_main.xml
<?xml version="1.0" encoding="utf-8"?>

<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.wertjr.lab1.MainActivity"
android:orientation="vertical">

<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Browser"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:id="@+id/browser_text" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/browser_text"
android:id="@+id/edit_box"/>

<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@id/edit_box"
android:id="@+id/search_btn"
android:layout_alignParentRight="true"
android:text="Search"/>

</RelativeLayout>

<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Camera"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:id="@+id/camera_text"/>

<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_below="@id/camera_text">

<RelativeLayout

4
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1">

<RadioButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/selfie_radio"/>

<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@id/selfie_radio"
android:text="Selfie"/>

</RelativeLayout>

<RelativeLayout
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1">

<RadioButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/camera_radio"/>

<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@id/camera_radio"
android:text="Camera"/>

</RelativeLayout>

<RelativeLayout
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1">

<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:id="@+id/camera_btn"
android:text="Take Photo"/>
</RelativeLayout>

</LinearLayout>

</RelativeLayout>

<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification"
android:id="@+id/notif_text"/>

<Button
android:layout_height="wrap_content"
5
android:layout_width="match_parent"
android:layout_below="@id/notif_text"
android:text="Push Notification"
android:textAlignment="center"
android:id="@+id/notif_btn"/>

</RelativeLayout>

<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text"
android:id="@+id/notes_text"/>

<Button
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_below="@id/notes_text"
android:text="Change notification text"
android:textAlignment="center"
android:id="@+id/notiffText"/>

</RelativeLayout>

</LinearLayout>

Anexa B MainActivity.java
package com.example.wertjr.lab1;

import android.app.AlarmManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Handler;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

private boolean running = true;


private boolean front = false;
private boolean back = false;
private RadioButton f;

6
private RadioButton b;
private String notiffText = "Nothing to say!";
private String str[] = {"You just create a new notification!", "Ooop, you did
this!", "Sorry... out of fantasy!"};
private int notificationContor = 0;

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

//img = (ImageView) findViewById(R.id.imageView);

//lucrul cu browser- ul
Button search = (Button)findViewById(R.id.search_btn);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final EditText txt = (EditText) findViewById(R.id.edit_box);
Uri uriUrl = Uri.parse("https://www.google.com/#safe=active&q=" +
txt.getText().toString().replace(" ", "%20"));
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(launchBrowser);
}
});

//lucrul cu notificarea
Button notification = (Button)findViewById(R.id.notif_btn);

final Handler mHandler = new Handler();

notification.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
running = true;
Intent intent = new Intent();
PendingIntent pIntent =
PendingIntent.getActivities(MainActivity.this,0, new Intent[]{intent}, 0);
Calendar calendar = Calendar.getInstance();
AlarmManager alarms = (AlarmManager) getSystemService(ALARM_SERVICE);
alarms.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() +
10000, pIntent);
final Notification noti = new Notification.Builder(MainActivity.this)
.setTicker("Title")
.setContentTitle("Yuppy")
.setContentText(notiffText)
.setSmallIcon(R.drawable.notification_icon)
.setContentIntent(pIntent).build();

noti.flags = Notification.FLAG_AUTO_CANCEL;
final NotificationManager mNotificationManager =
(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
new Thread(new Runnable() {
@Override
public void run() {
while (running) {
try {
Thread.sleep(10000);
mHandler.post(new Runnable() {
@Override
public void run() {
running = false;
mNotificationManager.notify(0, noti);
}
7
});
} catch (Exception e) {
}
}
}
}).start();
}
});

//lucrul cu camera
f = (RadioButton) findViewById(R.id.selfie_radio);
b = (RadioButton) findViewById(R.id.camera_radio);
Button camera = (Button) findViewById(R.id.camera_btn);
camera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (front || back) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1888);
}
}
});

f.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
front = f.isChecked();
back = false;
if (front)
b.setChecked(false);
}
});

b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
back = b.isChecked();
front = false;
if (back)
f.setChecked(false);
}
});

//lucru cu textul
Button text = (Button) findViewById(R.id.notiffText);
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(notificationContor == 3)
notificationContor = 0;
notiffText = str[notificationContor];
notificationContor++;
}
});
}

//capturarea imaginii
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1888 && resultCode == RESULT_OK) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
//Bundle extras = data.getExtras();
//Bitmap photo = (Bitmap) extras.get("data");
//img.setImageBitmap(photo);
8
}
}
}

S-ar putea să vă placă și