Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrarea Nr.1
Tema: UI Kit
Chiinu 2016
2.
3.
Condiii:
De utilizat componentele UI pentru a realiza urmtoarele condi ii:
1.
2.
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.
Am creat un New Project cu denumirea temei UI Kit, apoi am ales platforma de android API 21
pentru a se combina cu telefonul meu. Am adugat o activitate pentru telefon i am ales Emty
Activity. Astfel am creat proiectul pentru laboratorul 1.
1.Push Notification
Deschid mapa cu proiectul pe care l-am creat i caut mapa Res i apoi caut mapa Layout, unde
dm de fiierul Activity_main.xml. Alegem seciunea design i adugm un button cu
identitatea notifi. Am creat n mainActivity.java identitatea butonului notifi. Am preluat funcia de
notificare de pe sit-ul developer.android.com referitor la crearea unei notificri simple.
public void Notification(){
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this);
mBuilder.setSmallIcon(R.drawable.notification_icon);
mBuilder.setContentTitle("Notificarea mea");
mBuilder.setContentText("Prima conditie");
Notification notifcation = mBuilder.build();
A doua parte a condiiei este de crearea unui buton n care s fie executat peste un interval de
10 secunde. Pentru a crea executarea butonului notifi
notifi.setOnClickListener(new View.OnClickListener()
Funcia s-a creat singur apsnd Alt+Enter, n aceasta am plasat un timer Handler pentru a
putea porni funcia dup 10 secunde.
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Notification();
}
},10000);
n figura 1 este reprezentat apariia notificrii, dup executarea butonului de notificare. Este redat
un Titlul, cu o mic descriere i icon-ul notificrii.
2. O cutare n Google.
Pentru a nceput ne ducem n mapa Layout n fi ierul activity_main.xml, adugm un textbox i
un buton cu cuvntul cutare. Aceste toate func ii le am plasat simplu de la sec iunea Design.
Pentru a se executa din una n alta buton spre textbox sau invers am plasat identit ile una de la
alta.
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/eCauta"
android:layout_toStartOf="@+id/cauta" />
<Button
android:text="Cauta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cauta"
android:layout_alignBottom="@+id/eCauta"
android:layout_alignParentEnd="true" />
n fiierul principal Java am denumit resursele butonului i editText. Apoi am creat un butonul de
lansarea cu cuvntului cheie + link de cutare pe google ntr-un browser la alegere.
bCautare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "https://www.google.com/search?q="+tCautare.getText().toString();
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
S-a utilizat intent-ul pentru a lansa o aplicaie extern pentru a vizualiza linkul pe care eu l-am plasat.
Activitatea se pornete de ndat la apsarea butonului de cutare.
Mai jos v prezint n figura 2.1 bara de cutare din aplicaie, iar n figura 2.2 este deschiderea unui
browser cu rezultatul cutrii n Google.
Deci n figura 3 sunt prezentate fixarea butoanelor n fereastra principal. Care afi eaz dou
radio button cu un buton de accesare. Apoi se creeaz inten ia de a deschide aplica ia Camera.
Pentru ca utilizatorul s aleag funcia camerei am plasat dou radio butoane de alegere care
poate selecta Camera din Spate i din Fa. n func ia dat am declarat i RadioGrup
responsabil de selectare a fiecrei opiuni.
private void addListenerOnButton() {
final RadioGroup radiocamera = (RadioGroup) findViewById(R.id.radiocamera);
Button btnPhoto = (Button) findViewById(R.id.btnPhoto);
final RadioButton radiofront = (RadioButton) findViewById(R.id.radiofront);
btnPhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedId = radiocamera.getCheckedRadioButtonId();
RadioButton radiocamerabutton = (RadioButton) findViewById(selectedId);
if (radiocamerabutton == radiofront) {
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra("android.intent.extras.CAMERA_FACING", 1);
startActivityForResult(i, CAMERA_PIC_REQUEST);
} else {
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, CAMERA_PIC_REQUEST);
}
}
Din funcia de mai sus pe nume addListenerOnButton(); este adugat n funcia principal
prin care se lanseaz aplicaia dat.
n proiectul dat din mapa Manifest n fiierul Androidmanifest.xml i am plasat legtura dintre
soft i hardware pentru permisiune accesrii camerei frontale i din spate. Acest este verificat de
pe telefonul meu android.
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
Am creat o funcie cu rezultatul crerii capturii, pentru aceasta am salvat n formatul bitmap iar
apoi am salvat acest format ntr-un fiier, iar apoi am creat o inten ie de transferarea fi ierului
ntr-o nou activitate.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Bitmap thumbnail = null;
if (requestCode == CAMERA_PIC_REQUEST) {
if (resultCode == RESULT_OK) {
thumbnail = (Bitmap) data.getExtras().get("data");
Intent i = new Intent(this, Main2Activity.class);
i.putExtra("name", thumbnail);
startActivity(i);
}
}
}
Pentru a crea o nou activitate am creat o nou fiier din categoria Activity, i apoi am selectat
EmtyActivity de aici am obinut dou fiiere i s-a scris automat activitatea aceasta n fiierul Manifest.
Am plasat mai nti de toate un buton Back i un ImageView cu plasarea capturii de la camer.
Pentru butonul Back am scris o funcie care trebuie s se rentoarc la vechia activitate. i evident am
plasta variabila butonului Back.
Button back = (Button) findViewById(R.id.backbutton);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Main2Activity.this, MainActivity.class);
startActivity(i);
}
});
Iar pentru imaginea pe care am transferat-o n activitatea aceasta funcia este urmtoarea:
ImageView view = (ImageView) findViewById(R.id.ivPhoto);
Bitmap bitmap = getIntent().getExtras().getParcelable("name");
view.setImageBitmap(bitmap);
Se preia fiierul din Intetul de la prima activitate se plaseaz intentul n aceast aceasta activitate i are
loc citire fiierului. Rezultatul capturii v voi prezenta n figura 4.
Concluzia:
n urma efecturii acestei lucrri de laborator am realizat sarcinile de a crea 4 funcii. Toate aceste func ii
le am scris aparte avnd fiecare structura aparte. Prima elaborarea unei notificri unde am lucrat cu
notificarea am avut probleme cu timer-ul. Apoi am realizat cutarea ntr-un n google cu inten ia de a alege
browserul pe care dorete s-l aleag. Am realizat cum creez o camer i n urma acestui laborator am
realizat cum este mai uor s structurm funciile de executare. Apoi am creat coordonarea dintre una sau
mai multe activiti, cu transmitere de informaie sau cu accesarea.
Biografia:
-
https://www.tutorialspoint.com/android/
https://developer.android.com
https://www.raywenderlich.com/category/android
www.javatpoint.com/android-tutorial