Rysowanie. Rysowanie - podstawy

Podobne dokumenty
Programowanie dla Androida. Ubiquitous

grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie

Podstawowe kontrolki i ich obsługa

Laboratorium 9 (Więcej Aktywności, w Androidzie)

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna.

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

akademia androida Service, BroadcastReceiver, ContentProvider część IV

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Programowanie Urządzeń Mobilnych. Laboratorium nr 9,10

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

akademia androida Intencje oraz URI część III

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Programowanie w JAVA Lab. 5 - Wątki. 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 7 x ) xy, 8,8

Programowanie zdarzeniowe

Programowanie aplikacji na urządzenia mobilne

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Systemy operacyjne na platformach mobilnych

Programowanie dla Androida

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Programowanie urządzeń mobilnych

Multimedia JAVA. Historia

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

Języki i metody programowania Java Lab2 podejście obiektowe

Delphi podstawy programowania. Środowisko Delphi

Programowanie dla Androida. Ubiquitous

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Systemy operacyjne na platformach mobilnych

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

STWORZENIE PRZYKŁADOWEJ

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Załącznik techniczny przedmiotu zamówienia komponentu

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Grafika w aplikacjach lp. Jak zmienić kolor tła?

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Tworzenie prezentacji w MS PowerPoint

,Aplikacja Okazje SMS

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody.

Programowanie obiektowe

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Instrukcja obsługi platformy

Laboratorium 8 ( Android -pierwsza aplikacja)

GEO-SYSTEM Sp. z o.o. ul. Kubickiego 9 lok. 5, Warszawa, tel./fax , geo-system@geo-system.com.

Programowanie aplikacji mobilnych

Powiadomienia w systemie Android

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Programowanie obiektowe

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

Spis treści. S t r o n a 2

Android, wprowadzenie do SDK

Laboratorium Programowanie urządzeń mobilnych

Sieciowe Technologie Mobilne. Laboratorium 2

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Funkcje aplikacji. strona 1

Korzystanie z aplikacji P-touch Transfer Manager

Opis ikon OPIS IKON. Ikony w pionowym pasku narzędzi: Ikony te używane są przy edycji mapy. ta ikona otwiera szereg kolejnych ikon, które pozwalają na

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

KOTLIN. Język programowania dla Androida

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

REKLAMA INTERNETOWA WYMAGANIA TECHNICZNE

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Przykłady oprogramowania wykorzystujacego Qt

Telewizja przemysłowa (CCTV) w RACS 5

Wiadomości. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Język Java część 2 (przykładowa aplikacja)

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Kier. MTR Programowanie w MATLABie Laboratorium

Java Podstawy. Michał Bereta

Instrukcja obsługi platformy PROMEDIO Transmisje. wersja dla ucznia

Wprowadzenie do projektu QualitySpy

Laboratorium programowania urządzeń mobilnych

Języki i metody programowania Java. Wykład 2 (część 2)

GUI - projektowanie interfejsów cz. II

TEMAT : KLASY DZIEDZICZENIE

Zaawansowane programowanie UI na platformie Android

Programowanie w języku Java dla urządzeń BlackBerry z pomocą Blackberry JDE Plugin for Eclipse

Opcja szyby dokumentów

komunikator na platformę Android wspierający protokół GG

Programowanie telefonów z Windows Phone 7, cz. 3

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Laboratorium Systemów Mobilnych. Wykład 1

- dodaj obiekt tekstowy: /** Maciej */ Stage { title : "First JavaFX App" scene: Scene { width: 300 height: 300 content: [ ] } }

Język Java część 2 (przykładowa aplikacja)

Instrukcja obsługi. Zewnętrzny panel wideodomofonowy IP. Konfiguracja i obsługa aplikacji DMSS Plus. V_2.1

Transkrypt:

Rysowanie, K-16, 2017/2018 64 Rysowanie - podstawy Klasa rysująca dziedziczy po klasie graficznej View (do prostych zastosowań) lub SurfaceView (bardziej wydajne) Obiekt dziedziczący po klasie View ładowany jak layout przeciążona metoda ondraw( ) odpowiada za rysowanie: protected void ondraw(canvas canvas) { }, K-16, 2017/2018 65 2018 Wszelkie prawa zastrzeżone 1

Wybrane metody rysujące drawbitmap(bitmap bitmap, float left, float top, Paint paint) drawpicture(picture picture) drawcircle(float cx, float cy, float radius, Paint paint) drawline(float startx, float starty, float stopx, float stopy, Paint paint) drawpoint(float x, float y, Paint paint) drawrect(float left, float top, float right, float bottom, Paint paint) drawtext(string text, float x, float y, Paint paint) getheight() getwidth() translate(float dx, float dy), K-16, 2017/2018 66 Rysowanie Głowna aktywność ładuje obiekt rysujący jak layout., K-16, 2017/2018 67 2018 Wszelkie prawa zastrzeżone 2

Rysowanie true dla ciągłego nasłuchu, K-16, 2017/2018 68 Konstruktory Konstruktor dla widoku pełnoekranowego przełączanego przez setcontentview(); Konstruktor pozwalający na rysowanie jako komponent na leyoucie z sekcji Custom & Library Views, K-16, 2017/2018 69 2018 Wszelkie prawa zastrzeżone 3

Klasa View na layoucie Klasa musi dziedziczyć z View Klasa musi zawierać 2-argumentowy konstruktor z kontekstem i atrybutami Ikona z menu komponentów graficznych Custom & Library Views Traktowana jak zwyczajny komponent GUI, K-16, 2017/2018 70 Rysowanie/animacja Mechanizmy tworzenia animacji: Property Animation animacja właściwości od wersji 3.0 (API 11), możliwość animowania dowolnych właściwości (pól) obiektów w czasie, określając czas trwania, interpolację kroków animacji, powtarzalność ruchu, prędkość odświeżania i grupując obiekty w zestawy View Animation animacja na bazie klasy View ruch programowany jako kombinacja m.in. transformacji translacji, rotacji i skalowania w czasie Drawable Animation na podstawie gotowych obrazów klatek wyświetlanie klatek animacji załadowanych, np. w postaci filmu, K-16, 2017/2018 71 2018 Wszelkie prawa zastrzeżone 4

http://developer.android.com/guide/topics/graphics/2d-graphics.html Techniki rysowania Klasą Canvas W klasie View W klasie SurfaceView (w osobnym wątku poza głównym GUI) Klasa Drawable Gotowe klatki i filmy Resource Grafika zapisana w projekcie, w zasobach XML Programowanie animacji w języku XML ShapeDrawable Klasa do rysowania z podstawowych figur jak w Canvas, ale obiektowo Nine-patch Grafika z automatycznym obramowaniem OpenGL, akceleracja sprzętowa, K-16, 2017/2018 72 Ekran dotykowy Klawiatura itp. Interfejsy, K-16, 2017/2018 73 2018 Wszelkie prawa zastrzeżone 5

Interfejs OnTouchListener nasłuch zdarzenia Interfejs do nasłuchu akcji dotknięcia ekranu. Jego implementacja wymaga istnienia metody ontouch( ) zwracającej obiekt View, z którego nadeszła akcja oraz treść akcji., K-16, 2017/2018 74 Interfejs OnKeyListener nasłuch zdarzenia Nasłuch klawiszy telefonu z informacją o kodzie naciśniętego klawisza., K-16, 2017/2018 75 2018 Wszelkie prawa zastrzeżone 6

nasłuch klawiszy Klawisze: onkeyup(int keycode, KeyEvent event) onkeydown(int keycode, KeyEvent event) onkeylongpress(int keycode, KeyEvent event) onkeymultiple(int keycode, int repeatcount, KeyEvent event), K-16, 2017/2018 76 nasłuchy ekranu Ekran: Dotyk ekranu: ontouchevent(motionevent event) Drag&Drop (przeciągnij i upuść) ondragevent(dragevent event) http://developer.android.com/reference/android/view/motionevent.html http://developer.android.com/reference/android/view/dragevent.html, K-16, 2017/2018 77 2018 Wszelkie prawa zastrzeżone 7

Wybrane interfejsy nasłuchu zdarzeń onclick() z nasłuchu OnClickListener dotknięcie w trybie dotykowym, kliknięcie w trybie wyboru kursorem/myszą. onlongclick() z nasłuchu OnLongClickListener dotknięcie i przytrzymanie (> 1 s) w trybie dotykowym, kliknięcie i przytrzymanie (> 1 s) w trybie wyboru kursorem/myszą. onfocuschange() z nasłuchu OnFocusChangeListener najechanie lub zjechanie kursora z elementu graficznego Tylko w trybie wyboru kursorem/myszą! onkey() z nasłuchu OnKeyListener naciśnięcie lub puszczenie dowolnego klawisza telefonu Tylko gdy obiekt graficzny jest wybrany (isfocused == true)! ontouch() z nasłuchu OnTouchListener każdy rodzaj dotknięcia (przesuwanie i puszczenie też) Tylko w obrębie danego obiektu graficznego! oncreatecontextmenu() z nasłuchu OnCreateContextMenuListener przy tworzeniu menu pływającego po onlongclick(), jeśli jest odpowiednio zarejestrowane, K-16, 2017/2018 78 Pliki graficzne Wczytywanie plików graficznych (JPG, PNG, GIF):, K-16, 2017/2018 79 2018 Wszelkie prawa zastrzeżone 8

Przykład na podstawie: http://code.tutsplus.com/tutorials/androidsdk-create-a-drawing-app-touch-interaction--mobile-19202, K-16, 2017/2018 80 Przykład, K-16, 2017/2018 81 2018 Wszelkie prawa zastrzeżone 9

Przykład, K-16, 2017/2018 82 Przykład, K-16, 2017/2018 83 2018 Wszelkie prawa zastrzeżone 10

Przykład, K-16, 2017/2018 84 Przykład, K-16, 2017/2018 85 2018 Wszelkie prawa zastrzeżone 11

Rysowanie materiały dodatkowe Dokumentacja: http://developer.android.com/reference/android/graphics/canvas.html Dla zaawansowanych przykłady: http://developer.android.com/guide/topics/graphics/index.html grafika 3D OpenGL http://developer.android.com/training/graphics/opengl/index.html, K-16, 2017/2018 87 Intencje, K-16, 2017/2018 88 2018 Wszelkie prawa zastrzeżone 12

Intent intencje (wprowadzenie) Intencje Obiekty służące do przekazywania komunikatów do innych komponentów aplikacji (aktywność, serwis, Content provider, Broadcast Receiver), z prośbą o wykonanie czegoś. Na przykład: W celu uruchomienia innej aktywności z bieżącej aktywności Intent intent = new Intent(this, SignInActivity.class); intent.putextra(intent.extra_email, recipientarray); startactivity(intent); W celu uruchomienia serwisu, np. do ściągnięcia danych z internetu w tle W celu wysłania komunikatu do innej aplikacji, K-16, 2017/2018 89 Składniki intencji: Intencje opcjonalna nazwa komponentu (np. klasa aktywności do uruchomienia) akcja, np. ACTION_VIEW, ACTION_SEND dane, które mają zostać przekazane, zwykle adres URI i/lub ich typ MIME kategoria, pomaga wybrać właściwy komponent do obsługi intencji extras, czyli dodatkowe dane do przekazania, np. wartość, tekst itp. flagi dodatkowe informacje dla systemu Intencja bezpośrednia (explicite) odbiorca jest dokładnie zdefiniowany, np. aktywność do uruchomienia Intencja domniemana (implicite) odbiorca jest niezdefiniowany intencję obsłuży komponent, który posiada takie możliwości, jeśli istnieje, K-16, 2017/2018 90 2018 Wszelkie prawa zastrzeżone 13

Przykłady intencji Otwarcie mapy dla konkretnych współrzędnych Uri.parse("geo:0,0?q=%C5%81%C3%B3d%C5%BA+Stefanowskiego") geo:latitude,longitude np. "geo:47.6,-122.3" geo:latitude,longitude?z=zoom np. "geo:47.6,-122.3?z=11" (z = 1...23) geo:0,0?q=lat,lng(label) np. "geo:0,0?q=34.99,-106.61(treasure)" geo:0,0?q=my+street+address np. "geo:0,0?q=warszawa" Filtr intencji, K-16, 2017/2018 91 Aparat, K-16, 2017/2018 92 2018 Wszelkie prawa zastrzeżone 14

Aparat Klasa Camera (przestarzała) http://developer.android.com/guide/topics/media/camera.html i nowsza Camera2 (od wersji 21 - Lolipop) http://developer.android.com/samples/camera2basic/index.html http://www.androidhive.info/2013/09/android-working-with-camera-api/, K-16, 2017/2018 93 Aparat - uprawnienia, K-16, 2017/2018 94 2018 Wszelkie prawa zastrzeżone 15

Aparat - możliwości, K-16, 2017/2018 95 Aparat wyzwolenie intencji, K-16, 2017/2018 96 2018 Wszelkie prawa zastrzeżone 16

Aparat odbiór inf. zwrotnej public abstract boolean onactivityresult (int requestcode, int resultcode, Intent data) http://developer.android.com/reference/android/content/intent.html, K-16, 2017/2018 97 Aparat własna aplikacja http://developer.android.com/guide/topics/media/camera.html Części programu Sprawdzenie, czy aparat jest Dostęp do aparatu i jego możliwości Klasa podglądu na żywo (SurfaceView) Layout do podglądu Interfejs obsługujący zrobienie zdjęcia z odpowiednim nasłuchem Przechwycenie materiału i jego zapis Sprawdzenie, czy zapis się powiódł i zwolnienie aparatu., K-16, 2017/2018 98 2018 Wszelkie prawa zastrzeżone 17

Aparat klasa Camera2 CameraManager Zarządzanie wszystkimi aparatami urządzenia, sprawdzenie ich możliwości przez CameraCharacterstics class. CameraDevice Reprezentuje konkretny aparat, obiekt jest zwracany przez CameraManager. CaptureRequest Obsługuje żądanie wykonania zdjęcia. CameraCaptureSession Obsługuje proces robienia zdjęcia/nagrywania filmu. CameraCaptureSession.CaptureCallback Obsługuje wynik działania aparatu, zwraca podgląd z obiektywu, zapisuje zdjęcie itp., K-16, 2017/2018 99 Camera2 Uprawnienia: uses-permission - android.permission.camera - android.permission.write_external_storage uses-feature android.hardware.camera2.full Layout komponent TextureView do przekazywania obrazu z aparatu, K-16, 2017/2018 100 2018 Wszelkie prawa zastrzeżone 18