Graphics. Lecture 16

Size: px
Start display at page:

Download "Graphics. Lecture 16"

Transcription

1 Graphics Lecture 16

2 Graph Library Draw a Graph, draw a chart, google Android Library draw graph/ chart GraphView library information can be found at Add it to your build.gradle: (build.gradle app, syn the gradle file) dependencies { compile com.jjoe64:graphview: Create a graph in your activity XML ( <com.jjoe64.graphview.graphview android:layout_width= android:layout_height= /> -- Note: full package name

3 Line Graph in GraphView Talk to a graph in Java GraphView graph = (GraphView) findviewbyid(r.id.graph); graph.settitle( title ); //set X bounds graph.getviewport().setxaxisboundsmanual(true); graph.getviewport().setminx(minx); graph.getviewport().setmaxx(maxx); // Y is the same idea graph.getviewport().setyaxisboundsmanual(true); graph.getviewport().setminy(miny); graph.getviewport().setmaxy(maxy);

4 Line Graph in GraphView Add a line to the graph LineGraphSeries<DataPoint> series = new LineGraphSeries<>(); DataPoint point = new DataPoint(x,y); // get the data from the database, every time make //a point series.appenddata(point, false, maxpoints); graph.removeallseries();// remove previous lines if there is any graph.addseries(series);

5 Android Screen Coordinates /how-do-android-screencoordinates-work

6 Getting the Size of your Window Display display = getwindowmanager().getdefaultdisplay(); Point size = new Point(); Display.getSize(size); int maxx = size.x; int maxy = size.y;

7 Drawing 2D Graphics To draw your own custom 2D graphics on screen, you will need to make a custom View subclass with the drawing code. If the app is animated (such as a game), you will also use a thread to periodically update the graphics and redraw them.

8 Custom View Template public class ClassName extends View { // required constructor public ClassName(Context context, AttributeSet attrs) { super(context, attrs); // this method draws on the protected void ondraw(canvas canvas) { super.ondraw(canvas); drawing code;

9 Using your custom view Insert your custom view into an activity s layout XML: <!-- res/layout/activity_main.xml --> <RelativeLayout... tools:context=".mainactivity"> <packagename.viewclassname android:layout_width="match_parent" android:layout_height="match_parent"... /> </RelativeLayout>

10 Another Way to use your custom view If your custom view takes up 100% of the activity screen, you can just add it to the activity in the Java code: //MainActivity.java public class MyActivity extends Activity public void oncreate (Bundle bundle) { super.oncreate(bundle); View myview = new ViewClassName(this, null); setcontentview(myview);

11 Canvas object methods c.drawargb(alpha, r, g, b); - fill window with color (rgb=0-255) c.drawarc(...); - draw a partial ellipse c.drawbitmap(bmp, x, y, null); - draw an image c.drawcircle(centerx, centery, r, paint); - draw a circle c.drawline(x1, y1, x2, y2, paint); - draw a line segment c.drawoval(x1, y1, x2, y2, paint); * (requires Android 5.0) c.drawoval(new RectF(x1, y1, x2, y2), paint); - draw oval/circle c.drawpoint(x, y, paint); - color a single pixel c.drawrect(x1, y1, x2, y2, paint); * (requires Android 5.0) c.drawrect(new RectF(x1, y1, x2, y2), paint); - draw rectangle c.drawroundrect(x1, y1, x2, y2, rx, ry, paint); * (requires Android 5.0) c.drawroundrect(new RectF(x1, y1, x2, y2), rx, ry, paint); c.drawtext("str", x, y, paint); - draw a text string c.getwidth(), c.getheight() - get dimensions of drawing area

12 Paint Many methods accept a Paint, a color to use for drawing. Create a Paint by specifying an alpha (opacity) value, and red/green/ blue (RGB) integer values, from 0 (none) to 255 (full). Paint name = new Paint(); name.setargb(alpha, red, green, blue); // example Paint purple = new Paint(); purple.setargb(255, 255, 0, 255); purple.setstyle(style.fill_and_stroke); // FILL, STROKE Paint has other useful methods like: gettextbounds, measuretext, setalpha, setantialias, setstrokewidth, setstyle, settextalign, settextsize, settypeface

13 Typeface In Android, a font is called a Typeface. Set a font inside a Paint. You can create a Typeface based on a specific font name: Typeface.create("font name", Typeface.STYLE) styles: NORMAL, BOLD, ITALIC, BOLD_ITALIC Or based on a general "font family": Typeface.create(Typeface.FAMILY_NAME, Typeface.STYLE) family names: DEFAULT, MONOSPACE, SERIF, SANS_SERIF Or from a file in your src/main/assets/ directory: Typeface.createFromAsset(getAssets(), "filename") // example: use a 40-point monospaced blue font Paint p = new Paint(); p.settypeface( Typeface.create(Typeface.MONOSPACE, Typeface.BOLD)); p.settextsize(40); // font size is set by paint p.setargb(255, 0, 0, 255); canvas.drawtext( hello,200,400,p);

14 Bitmap Image Draw an image (such as.png or.jpg) using the Bitmap class. Bitmap name = BitmapFactory.decodeResource( getresources(), R.drawable.ID); // example: draw heart.png on screen at (0, 0) Bitmap bmp = BitmapFactory.decodeResource( getresources(), R.drawable.heart); canvas.drawbitmap(bmp, 0, 0, null); // null is the Paint // you can also read a Bitmap from an input stream URL url = new URL(" Bitmap bmp = BitmapFactory.decodeStream( url.openstream());

15 Make a BitMap

16 Draw a Target public class TargetView extends View { public TargetView(Context context, AttributeSet attrs) { protected void ondraw(canvas canvas) { super.ondraw(canvas); Paint red = new Paint(); red.setargb(255,255,0,0); Paint white = new Paint(); white.setargb(255,255,255,255); int w = canvas.getwidth(); int h = canvas.getheight(); for (int i = 0; i < 5; i++) { canvas.drawoval(new RectF(w*i/10, h*i/10, w*(10-i)/10, h*(10-i)/10, i%2=0?red:white);

17 @Marty Stepp Smiley Face Example

18 @Marty Stepp Smiley Face Solution

19 Animation via redrawing To animate a view, you must redraw it at regular intervals. On each redraw, change variables/positions of shapes Force a view to redraw itself by calling its postinvalidate method

20 Example 1 public class FaceActivity extends AppCompatActivity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_face); public void moveclick(view view) { FaceView faceview = (FaceView) findviewbyid(r.id.myfaceview); faceview.postinvalidate(); // tell it to redraw itself

21 Animation In FaceView.java file (custom view), define a method public void dotheanimation() { while(true) { try { Thread.sleep(20); catch(interuptexception e) { break; // if terminate the app, then out the loop postinvalidate();

22 Wanted to click button, then do the animation public class FaceActivity extends AppCompatActivity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_face); public void moveclick(view view) { FaceView faceview =(FaceView) findviewbyid(r.id.myfaceview); faceview.dotheanimation(); // DID NOT WORK

23 Animation via redrawing Force a view to redraw itself by calling its invalidate method: But you can't just do this in a loop; this will lock up the app's UI and lead to poor performance You must instead do it in another thread of execution

24 Correct Version public class FaceActivity extends AppCompatActivity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_face); public void moveclick(view view) { final FaceView faceview =(FaceView) findviewbyid(r.id.myfaceview); Thread thread = new Thread ( new Runnable() { public void run() { faceview.dotheanimation(); ); thread.start();

25 Basic Animation Loop The code to animate a view must do the following: Tell the view to redraw itself Pause for some number of milliseconds Repeat, in a loop (possibly forever) // in custom view java file public void myanimationloop() { while(true) { try { Thread.sleep(20); catch(interuptexception e) { break; // if terminate the app, then out the loop postinvalidate();

26 Android Thread

27 Bouncing Ball Example Demo MyBouncingBall App BouncingBallView.java MainActivity.java

28 BouncingBallView.java public class BouncingBallView extends View { private static final float BALL_SIZE = 30; private float ballx = 10; private float bally = 10; private float velocityx = 5; private float velocityy = 3; public BouncingBallView(Context context, AttributeSet attrs) { protected void ondraw(canvas canvas) { super.ondraw(canvas); drawbouncingball(canvas);

29 BouncingBallView.java private void drawbouncingball(canvas canvas) { Paint red = new Paint(); red.setargb(255,255,0,0); red.setstyle(paint.style.fill); float w = canvas.getwidth(); float h = canvas.getheight(); //draw the ball canvas.drawoval(new RectF(ballX,ballY, ballx + BALL_SIZE, bally+ BALL_SIZE), red); //update x, y for ondraw next time ballx += velocityx; bally += velocityy; //bounce if needed if(ballx + BALL_SIZE >= w ballx <=0 ) { velocityx = -velocityx; if(bally + BALL_SIZE >= h bally <=0 ) { velocityy = -velocityy;

30 Android Game Libraries Unity: popular cross-platform game library Comprehensive, deploys to many platforms Libgdx: another cross-platform game lib based on OpenGL Google Play Games Services: set of libraries made by Google for social gaming features

31 Pros/cons of game frameworks You don t even code in Java Cocos2d-x: C++, JavaScript Unity: C# and others Skia: Python Xamarin: C# Have their own editing software (not Android Studio) Many are cross-platform and deploy(mostly) the same game code to multiple platforms Code game once and deploy it on web, Android, ios, etc.

32 Sprite Drawing Code Sprites can contain code to draw themselves Game s ondraw tells each sprite to draw itself in a loop public class Sprite { float x, y, w, h; float dx, dy; Paint paint; public void draw(canvas canvas) { canvas.drawrect(x,y,x+w,y+h, paint);

33 Canvas is the one under it public class ClassName extends View { // required constructor public ClassName(Context context, AttributeSet attrs) { super(context, attrs); // this method draws on the protected void ondraw(canvas canvas) { super.ondraw(canvas); drawing code;

34 Moving Sprites One Way to do the movement: have each sprite stores a velocity dx/dy pair, or write a simple 2D Vector class Usually write a simple method to tell the sprite to move/update itself This method is called once each frame in your game s animation loop public class Sprite { float x, y, w, h; float dx, dy; public void move() { x += dx; y += dy;

35 Acceleration Move advanced: you may want to apply acceleration to movement Could be a single value(scale up/down), separate ax/ay, or another 2D vector Updates velocity when object moves Need to watch out for sign issues if velocity components are negative public class Sprite { float x, y, w, h; float dx, dy; float ax, ay; public void move() { x += dx; y += dy; dx *= (1.0 +ax); //accelerate dy *= (1.0+ay);

36 Mouse (Touch) Events Old mouse events: a physical mouse attached to a device Types: button press, release, cursor moved, drag, enter/exit, hover New touch events: a finger touching the screen Type: button press, release, drag Mouse movement, hovering largely absent Multi-touch input now possible

37 Mouse Touch Events

38 Keyboard Events

GATAV 5. Animations Using a Game Loop

GATAV 5. Animations Using a Game Loop GATAV 5. Animations Using a Game Loop TOC 1. The basic principle. 2. Creating bubbles. 3. Making the bubbles more look alive. 4. The appearent look. 5. Making the audiance impressed. 6. Now it up to you:

More information

Custom Views in Android Tutorial

Custom Views in Android Tutorial Custom Views in Android Tutorial The Android platform provides an extensive range of user interface items that are sufficient for the needs of most apps. However, there may be occasions on which you feel

More information

Introduction to Android Development

Introduction to Android Development Introduction to Android Development What is Android? Android is the customizable, easy to use operating system that powers more than a billion devices across the globe - from phones and tablets to watches,

More information

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology Android App Development Mr. Michaud ICE Programs Georgia Institute of Technology Android Operating System Created by Android, Inc. Bought by Google in 2005. First Android Device released in 2008 Based

More information

Android Apps Development for Mobile Game Lesson Create a simple paint brush that allows user to draw something (Page 11 13)

Android Apps Development for Mobile Game Lesson Create a simple paint brush that allows user to draw something (Page 11 13) Workshop 1. Create a simple Canvas view with simple drawing (Page 1 5) Hide Action Bar and Status Bar Create Canvas View Create Simple Drawing 2. Create a simple animation (Page 6 10) Load a simple image

More information

INTRODUCTION TO ANDROID

INTRODUCTION TO ANDROID INTRODUCTION TO ANDROID 1 Niv Voskoboynik Ben-Gurion University Electrical and Computer Engineering Advanced computer lab 2015 2 Contents Introduction Prior learning Download and install Thread Android

More information

Programming of Mobile Services, Spring 2012

Programming of Mobile Services, Spring 2012 Programming of Mobile Services, Spring 2012 HI1017 Lecturer: Anders Lindström, anders.lindstrom@sth.kth.se Lecture 6 Today s topics Android graphics - Views, Canvas, Drawables, Paint - Double buffering,

More information

Mobile Application (Design and) Development

Mobile Application (Design and) Development Mobile Application (Design and) Development 7 th class Prof. Stephen Intille s.intille@neu.edu Northeastern University 1 Q&A Workspace setup in lab. Anyone try it? Anyone looking for a partner? Boggle

More information

CS260 Intro to Java & Android 09.AndroidAdvUI (Part I)

CS260 Intro to Java & Android 09.AndroidAdvUI (Part I) CS260 Intro to Java & Android 09.AndroidAdvUI (Part I) Winter 2015 Winter 2015 CS260 - Intro to Java & Android 1 Creating TicTacToe for Android We are going to begin to use everything we ve learned thus

More information

Spring Lecture 7 Lecturer: Omid Jafarinezhad

Spring Lecture 7 Lecturer: Omid Jafarinezhad Mobile Programming Sharif University of Technology Spring 2016 - Lecture 7 Lecturer: Omid Jafarinezhad Grid View GridView is a ViewGroup that displays items in a two-dimensional, scrollable grid. The grid

More information

Bouncing and Actor Class Directions Part 2: Drawing Graphics, Adding Touch Event Data, and Adding Accelerometer

Bouncing and Actor Class Directions Part 2: Drawing Graphics, Adding Touch Event Data, and Adding Accelerometer Bouncing and Actor Class Directions Part 2: Drawing Graphics, Adding Touch Event Data, and Adding Accelerometer Description: Now that we have an App base where we can create Actors that move, bounce, and

More information

A Crash Course to Android Mobile Platform

A Crash Course to Android Mobile Platform Enterprise Application Development using J2EE Shmulik London Lecture #2 A Crash Course to Android Mobile Platform Enterprise Application Development Using J2EE / Shmulik London 2004 Interdisciplinary Center

More information

Introduction to Mobile Application Development Using Android Week Three Video Lectures

Introduction to Mobile Application Development Using Android Week Three Video Lectures Introduction to Mobile Application Development Using Android Week Three Video Lectures Week Three: Lecture 1: Unit 1: 2D Graphics Colors, Styles, Themes and Graphics Colors, Styles, Themes and Graphics

More information

OPTIMIZING ANDROID UI PRO TIPS FOR CREATING SMOOTH AND RESPONSIVE APPS

OPTIMIZING ANDROID UI PRO TIPS FOR CREATING SMOOTH AND RESPONSIVE APPS OPTIMIZING ANDROID UI PRO TIPS FOR CREATING SMOOTH AND RESPONSIVE APPS @CYRILMOTTIER GET TO KNOW JAVA DON T USE BOXED TYPES UNNECESSARILY HashMap hashmap = new HashMap();

More information

User Interface Development. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr.

User Interface Development. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. User Interface Development CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. Rajiv Ramnath 1 Outline UI Support in Android Fragments 2 UI Support in the Android

More information

Computer Games 2014 Selected Game Engines

Computer Games 2014 Selected Game Engines Computer Games 2014 Selected Game Engines Dr. Mathias Lux Klagenfurt University This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 pixi.js Web based rendering engine

More information

Smoother Graphics Taking Control of Painting the Screen

Smoother Graphics Taking Control of Painting the Screen It is very likely that by now you ve tried something that made your game run rather slow. Perhaps you tried to use an image with a transparent background, or had a gazillion objects moving on the window

More information

Fragments. Lecture 11

Fragments. Lecture 11 Fragments Lecture 11 Situational layouts Your app can use different layouts in different situations Different device type (tablet vs. phone vs. watch) Different screen size Different orientation (portrait

More information

package import import import import import import import public class extends public void super new this class extends public super public void new

package import import import import import import import public class extends public void super new this class extends public super public void new Android 2-D Drawing Android uses a Canvas object to host its 2-D drawing methods. The program below draws a blue circle on a white canvas. It does not make use of the main.xml layout but draws directly

More information

Embedded Systems Programming - PA8001

Embedded Systems Programming - PA8001 Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 9 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering

More information

Fragments were added to the Android API in Honeycomb, API 11. The primary classes related to fragments are: android.app.fragment

Fragments were added to the Android API in Honeycomb, API 11. The primary classes related to fragments are: android.app.fragment FRAGMENTS Fragments An activity is a container for views When you have a larger screen device than a phone like a tablet it can look too simple to use phone interface here. Fragments Mini-activities, each

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II) Media Playback Engine Android provides a media playback engine at the native level called Stagefright that comes built-in with software-based

More information

IT101. Graphical User Interface

IT101. Graphical User Interface IT101 Graphical User Interface Foundation Swing is a platform-independent set of Java classes used for user Graphical User Interface (GUI) programming. Abstract Window Toolkit (AWT) is an older Java GUI

More information

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III. Jon

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III. Jon CMSC434 Introduction to Human-Computer Interaction Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III Jon Froehlich @jonfroehlich Human Computer Interaction Laboratory COMPUTER SCIENCE UNIVERSITY

More information

Text Properties Data Validation Styles/Themes Material Design

Text Properties Data Validation Styles/Themes Material Design Text Properties Data Validation Styles/Themes Material Design Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: Email:info@sisoft.in Phone: +91-9999-283-283

More information

We will start our journey into Processing with creating static images using commands available in Processing:

We will start our journey into Processing with creating static images using commands available in Processing: Processing Notes Chapter 1: Starting Out We will start our journey into Processing with creating static images using commands available in Processing: rect( ) line ( ) ellipse() triangle() NOTE: to find

More information

COMP Summer 2015 (A01) Jim (James) Young jimyoung.ca

COMP Summer 2015 (A01) Jim (James) Young jimyoung.ca COMP 1010- Summer 2015 (A01) Jim (James) Young young@cs.umanitoba.ca jimyoung.ca final float MAX_SPEED = 10; final float BALL_SIZE = 5; void setup() { size(500, 500); void draw() { stroke(255); fill(255);

More information

+ Inheritance. Sometimes we need to create new more specialized types that are similar to types we have already created.

+ Inheritance. Sometimes we need to create new more specialized types that are similar to types we have already created. + Inheritance + Inheritance Classes that we design in Java can be used to model some concept in our program. For example: Pokemon a = new Pokemon(); Pokemon b = new Pokemon() Sometimes we need to create

More information

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) In this exercise, we will create a simple Android application that uses IBM Bluemix Cloudant NoSQL DB. The application

More information

ELET4133: Embedded Systems. Topic 15 Sensors

ELET4133: Embedded Systems. Topic 15 Sensors ELET4133: Embedded Systems Topic 15 Sensors Agenda What is a sensor? Different types of sensors Detecting sensors Example application of the accelerometer 2 What is a sensor? Piece of hardware that collects

More information

MotionEvents Touch Handling Gestures

MotionEvents Touch Handling Gestures MotionEvents Touch Handling Gestures Represents a movement in an input device reading pen, trackball, mouse, finger Action Code State change that occurred Action Values Position and movement properties,

More information

ANDROID (4) 2D Graphics and Animation, Handling Screen Rotation. Marek Piasecki

ANDROID (4) 2D Graphics and Animation, Handling Screen Rotation. Marek Piasecki ANDROID (4) 2D Graphics and Animation, Handling Screen Rotation Marek Piasecki Outline 2D graphics drawing Color / Paint / Canvas XML drawable (from resources) direct to a Canvas / View.onDraw() 2D animation

More information

5.1. Examples: Going beyond Sequence

5.1. Examples: Going beyond Sequence Chapter 5. Selection In Chapter 1 we saw that algorithms deploy sequence, selection and repetition statements in combination to specify computations. Since that time, however, the computations that we

More information

Android. YÉÇàá. Victor Matos Cleveland State University

Android. YÉÇàá. Victor Matos Cleveland State University Lesson 9 Android YÉÇàá Victor Matos Cleveland State University Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons

More information

Mastering Android Drawables

Mastering Android Drawables Cyril Mottier Mastering Android Drawables Drawable are powerful so use them! Global note 2 Introduction Drawables 101 3 Introduction What s a Drawable? 4 Introduction What s a Drawable? Entity that can

More information

Services. service: A background task used by an app.

Services. service: A background task used by an app. CS 193A Services This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Services service: A background task

More information

Game Programming with. presented by Nathan Baur

Game Programming with. presented by Nathan Baur Game Programming with presented by Nathan Baur What is libgdx? Free, open source cross-platform game library Supports Desktop, Android, HTML5, and experimental ios support available with MonoTouch license

More information

05. RecyclerView and Styles

05. RecyclerView and Styles 05. RecyclerView and Styles 08.03.2018 1 Agenda Intents Creating Lists with RecyclerView Creating Cards with CardView Application Bar Menu Styles and Themes 2 Intents 3 What is Intent? An Intent is an

More information

Screen Slides. The Android Studio wizard adds a TextView to the fragment1.xml layout file and the necessary code to Fragment1.java.

Screen Slides. The Android Studio wizard adds a TextView to the fragment1.xml layout file and the necessary code to Fragment1.java. Screen Slides References https://developer.android.com/training/animation/screen-slide.html https://developer.android.com/guide/components/fragments.html Overview A fragment can be defined by a class and

More information

BlackBerry Java Application UI and Navigation Version: 5.0. Development Guide

BlackBerry Java Application UI and Navigation Version: 5.0. Development Guide BlackBerry Java Application UI and Navigation Version: 5.0 Development Guide Published: 2010-08-20 SWD-810476-0820021303-001 Contents 1 Creating a UI that is consistent with standard BlackBerry UIs...

More information

Android Development Tutorial

Android Development Tutorial Android Development Tutorial Part II Human-Computer Interaction (COMP 4020) Winter 2013 2 Canvas Example public class CanvasApp extends Activity @Override protected void oncreate(bundle savedinstancestate)

More information

Mobile Programming Lecture 2. Layouts, Widgets, Toasts, and Event Handling

Mobile Programming Lecture 2. Layouts, Widgets, Toasts, and Event Handling Mobile Programming Lecture 2 Layouts, Widgets, Toasts, and Event Handling Lecture 1 Review How to edit XML files in Android Studio? What holds all elements (Views) that appear to the user in an Activity?

More information

Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.

Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings. Hello World Lab Objectives: Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.xml What to Turn in: The lab evaluation

More information

Developing Android Applications Introduction to Software Engineering Fall Updated 1st November 2015

Developing Android Applications Introduction to Software Engineering Fall Updated 1st November 2015 Developing Android Applications Introduction to Software Engineering Fall 2015 Updated 1st November 2015 Android Lab 3 & Midterm Additional Concepts No Class Assignment 2 Class Plan Android : Additional

More information

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie User Interface Design" & Development -

More information

Programming Mobile Applications with Android Lab2

Programming Mobile Applications with Android Lab2 Programming Mobile Applications Lab2 22-26 September, Albacete, Spain Jesus Martínez-Gómez .- Create, compile and execute an Android application to understand the Android life cycle Follow the instructions

More information

Syllabus- Java + Android. Java Fundamentals

Syllabus- Java + Android. Java Fundamentals Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing

More information

(SSOL) Simple Shape Oriented Language

(SSOL) Simple Shape Oriented Language (SSOL) Simple Shape Oriented Language Madeleine Tipp Jeevan Farias Daniel Mesko mrt2148 jtf2126 dpm2153 Description: SSOL is a programming language that simplifies the process of drawing shapes to SVG

More information

Making a maze with Scratch

Making a maze with Scratch Making a maze with Scratch Can you make it to the end? Student guide An activity by the Australian Computing Academy Let s go! Step 0: Get started Go to www.scratch.mit.edu Sign in with the username and

More information

Fragments. Lecture 10

Fragments. Lecture 10 Fragments Lecture 10 Situa2onal layouts Your app can use different layouts in different situa2ons Different device type (tablet vs. phone vs. watch) Different screen size Different orienta2on (portrait

More information

PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE)

PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE) PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE) Network Connection Web Service K Candra Brata andra.course@gmail.com Mobille App Lab 2015-2016 Network Connection http://developer.android.com/training/basics/network-ops/connecting.html

More information

INKSCAPE BASICS. 125 S. Prospect Avenue, Elmhurst, IL (630) elmhurstpubliclibrary.org. Create, Make, and Build

INKSCAPE BASICS. 125 S. Prospect Avenue, Elmhurst, IL (630) elmhurstpubliclibrary.org. Create, Make, and Build INKSCAPE BASICS Inkscape is a free, open-source vector graphics editor. It can be used to create or edit vector graphics like illustrations, diagrams, line arts, charts, logos and more. Inkscape uses Scalable

More information

Diving into Android. By Jeroen Tietema. Jeroen Tietema,

Diving into Android. By Jeroen Tietema. Jeroen Tietema, Diving into Android By Jeroen Tietema Jeroen Tietema, 2015 1 Requirements 4 Android SDK 1 4 Android Studio (or your IDE / editor of choice) 4 Emulator (Genymotion) or a real device. 1 See https://developer.android.com

More information

Acknowledgments...xvii. Introduction... Chapter 1: Getting Started Chapter 2: Build a Hi-Lo Guessing Game App!... 19

Acknowledgments...xvii. Introduction... Chapter 1: Getting Started Chapter 2: Build a Hi-Lo Guessing Game App!... 19 Brief Contents Acknowledgments...xvii Introduction... xix Chapter 1: Getting Started... 1 Chapter 2: Build a Hi-Lo Guessing Game App!... 19 Chapter 3: Creating a GUI for Our Guessing Game... 43 Chapter

More information

Mobile Programming Lecture 1. Getting Started

Mobile Programming Lecture 1. Getting Started Mobile Programming Lecture 1 Getting Started Today's Agenda About the Android Studio IDE Hello, World! Project Android Project Structure Introduction to Activities, Layouts, and Widgets Editing Files in

More information

Android Application Development. By : Shibaji Debnath

Android Application Development. By : Shibaji Debnath Android Application Development By : Shibaji Debnath About Me I have over 10 years experience in IT Industry. I have started my career as Java Software Developer. I worked in various multinational company.

More information

Android Tutorial: Part 3

Android Tutorial: Part 3 Android Tutorial: Part 3 Adding Client TCP/IP software to the Rapid Prototype GUI Project 5.2 1 Step 1: Copying the TCP/IP Client Source Code Quit Android Studio Copy the entire Android Studio project

More information

Java Programming Lecture 6

Java Programming Lecture 6 Java Programming Lecture 6 Alice E. Fischer Feb 15, 2013 Java Programming - L6... 1/32 Dialog Boxes Class Derivation The First Swing Programs: Snow and Moving The Second Swing Program: Smile Swing Components

More information

CS371m - Mobile Computing. Responsiveness

CS371m - Mobile Computing. Responsiveness CS371m - Mobile Computing Responsiveness An App Idea From Nifty Assignments Draw a picture use randomness Pick an equation at random Operators in the equation have the following property: Given an input

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Saving State THE PROBLEM How to save the state (of a UI, for instance) so that it survives even when the application is closed/killed The state should

More information

Have a development environment in 256 or 255 Be familiar with the application lifecycle

Have a development environment in 256 or 255 Be familiar with the application lifecycle Upcoming Assignments Readings: Chapter 4 by today Horizontal Prototype due Friday, January 22 Quiz 2 today at 2:40pm Lab Quiz next Friday during lecture time (2:10-3pm) Have a development environment in

More information

API Guide for Gesture Recognition Engine. Version 2.0

API Guide for Gesture Recognition Engine. Version 2.0 API Guide for Gesture Recognition Engine Version 2.0 Table of Contents Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket Library... 4 Project

More information

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2.

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2. Outline 1. Set up Android Studio Android development Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 15 September 2017 2. Create sample app 3. Add UI to see how the design interface works 4. Add some code

More information

COMP Summer 2015 (A01) Jim (James) Young jimyoung.ca

COMP Summer 2015 (A01) Jim (James) Young jimyoung.ca COMP 1010- Summer 2015 (A01) Jim (James) Young young@cs.umanitoba.ca jimyoung.ca order of operations with the explicit cast! int integervariable = (int)0.5*3.0; Casts happen first! the cast converts the

More information

DarkBASIC Pro: Counters and Timers Copyright 2011 A. Stewart 1

DarkBASIC Pro: Counters and Timers Copyright 2011 A. Stewart 1 DarkBASIC Pro: Counters and Timers Copyright 2011 A. Stewart 1 Counters and Timers Introduction Many games need to display either counters, or timers, or both. We need to count how many points you ve accumulated

More information

Mobile App Design Project Doodle App. Description:

Mobile App Design Project Doodle App. Description: Mobile App Design Project Doodle App Description: This App takes user touch input and allows the user to draw colored lines on the screen with touch gestures. There will be a menu to allow the user to

More information

CS 160: Lecture 10. Professor John Canny Spring 2004 Feb 25 2/25/2004 1

CS 160: Lecture 10. Professor John Canny Spring 2004 Feb 25 2/25/2004 1 CS 160: Lecture 10 Professor John Canny Spring 2004 Feb 25 2/25/2004 1 Administrivia In-class midterm on Friday * Closed book (no calcs or laptops) * Material up to last Friday Lo-Fi Prototype assignment

More information

Produced by. Mobile Application Development. Eamonn de Leastar

Produced by. Mobile Application Development. Eamonn de Leastar Mobile Application Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie A First

More information

Orientation & Localization

Orientation & Localization Orientation & Localization Overview Lecture: Open Up Your My Pet App Handling Rotations Serializable Landscape Layouts Localization Alert Dialogs 1 Handling Rotations When the device is rotated, the device

More information

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Kevin Zatloukal Summer 2017 Java Graphics and GUIs (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins, Zach Tatlock) Review: how to create

More information

ECE 480 Application Note. By: Jacob Hersha 4/3/15. Creating a Sequence of Media with Visual Studio

ECE 480 Application Note. By: Jacob Hersha 4/3/15. Creating a Sequence of Media with Visual Studio ECE 480 Application Note By: Jacob Hersha 4/3/15 Creating a Sequence of Media with Visual Studio Executive Summary Microsoft Visual Studio can be used to perform a wide variety of media processing techniques.

More information

Using Libraries, Text-to-Speech, Camera. Lecture 12

Using Libraries, Text-to-Speech, Camera. Lecture 12 Using Libraries, Text-to-Speech, Camera Lecture 12 Libraries Many Android developers have produced useful libraries. There is a Maven repository to store various libraries This makes it easy to add them

More information

ArtOfTest Inc. Automation Design Canvas 2.0 Beta Quick-Start Guide

ArtOfTest Inc. Automation Design Canvas 2.0 Beta Quick-Start Guide Automation Design Canvas 2.0 Beta Quick-Start Guide Contents Creating and Running Your First Test... 3 Adding Quick Verification Steps... 10 Creating Advanced Test Verifications... 13 Creating a Data Driven

More information

Java Basics A Simple Hit the Zombies Game

Java Basics A Simple Hit the Zombies Game Lecture #3 Introduction Java Basics A Simple Hit the Zombies Game The previous lecture provided a guided tour to explore the basics of Android Studio and how to use it to create a project to build an Android

More information

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering Getting Started Dr. Miguel A. Labrador Department of Computer Science & Engineering labrador@csee.usf.edu http://www.csee.usf.edu/~labrador 1 Goals Setting up your development environment Android Framework

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Entire Lifetime An activity begins its lifecycle when entering the oncreate() state If not interrupted

More information

ACS-1805 Introduction to Programming (with App Inventor)

ACS-1805 Introduction to Programming (with App Inventor) ACS-1805 Introduction to Programming (with App Inventor) Chapter 8 Creating Animated Apps 10/25/2018 1 What We Will Learn The methods for creating apps with simple animations objects that move Including

More information

Creating and Editing Images in Paint Shop Pro Version XI. File Types

Creating and Editing Images in Paint Shop Pro Version XI. File Types Creating and Editing Images in Paint Shop Pro Version XI Paint Shop Pro (PSP) from JASC software (http://www.jasc.com) is an imageediting and creation program. You can download a 30-day trial version from

More information

UI Toolkits. HCID 520 User Interface Software & Technology

UI Toolkits. HCID 520 User Interface Software & Technology UI Toolkits HCID 520 User Interface Software & Technology http://www.cryptonomicon.com/beginning.html Xerox Alto 1973 Evolution of User Interfaces Command Line (UNIX shell, DOS prompt) Interaction driven

More information

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Inject one subtle defect (fault seeding) To be reviewed by a few class members Usability study by CPE 484 students

More information

Agenda. Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen

Agenda. Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen Gill Cleeren Agenda Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen Lists and navigation Navigating from master to detail Optimizing the application Preparing

More information

Click the buttons in the interactive below to become familiar with the drawing tool's commands.

Click the buttons in the interactive below to become familiar with the drawing tool's commands. Google Documents Inserting Text Boxes and Shapes Introduction Page 1 Google Documents has a drawing tool designed for inserting text boxes and shapes into your document. Although not necessary for every

More information

Developing Android Applications

Developing Android Applications Developing Android Applications SEG2105 - Introduction to Software Engineering Fall 2016 Presented by: Felipe M. Modesto TA & PhD Candidate Faculty of Engineering Faculté de Génie uottawa.ca Additional

More information

GUI Output. Adapted from slides by Michelle Strout with some slides from Rick Mercer. CSc 210

GUI Output. Adapted from slides by Michelle Strout with some slides from Rick Mercer. CSc 210 GUI Output Adapted from slides by Michelle Strout with some slides from Rick Mercer CSc 210 GUI (Graphical User Interface) We all use GUI s every day Text interfaces great for testing and debugging Infants

More information

Getting Started With Android Feature Flags

Getting Started With Android Feature Flags Guide Getting Started With Android Feature Flags INTRO When it comes to getting started with feature flags (Android feature flags or just in general), you have to understand that there are degrees of feature

More information

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator.

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator. Simple Android Application for Native Calculator Aim: To develop a Simple Android Application for Native Calculator. Procedure: Creating a New project: Open Android Stdio and then click on File -> New

More information

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time The 1 activity 1 thing the user can do heuristic may not make sense for larger devices Application

More information

G51PRG: Introduction to Programming Second semester Applets and graphics

G51PRG: Introduction to Programming Second semester Applets and graphics G51PRG: Introduction to Programming Second semester Applets and graphics Natasha Alechina School of Computer Science & IT nza@cs.nott.ac.uk Previous two lectures AWT and Swing Creating components and putting

More information

CISC 1600, Lab 2.3: Processing animation, objects, and arrays

CISC 1600, Lab 2.3: Processing animation, objects, and arrays CISC 1600, Lab 2.3: Processing animation, objects, and arrays Prof Michael Mandel 1 Getting set up For this lab, we will again be using Sketchpad. sketchpad.cc in your browser and log in. Go to http://cisc1600.

More information

1. Multimedia authoring is the process of creating a multimedia production:

1. Multimedia authoring is the process of creating a multimedia production: Chapter 8 1. Multimedia authoring is the process of creating a multimedia production: Creating/assembling/sequencing media elements Adding interactivity Testing (Alpha/Beta) Packaging Distributing to end

More information

A Tour of Android. and some of it s APIs. Bryan Noll

A Tour of Android. and some of it s APIs. Bryan Noll A Tour of Android and some of it s APIs Bryan Noll Me professionally A good starting point http://neidetcher.blogspot.com/2009/07/android-presentation-from-denver-open.html The OS The VM Basic Views Basic

More information

CISC 1600 Lecture 3.1 Introduction to Processing

CISC 1600 Lecture 3.1 Introduction to Processing CISC 1600 Lecture 3.1 Introduction to Processing Topics: Example sketches Drawing functions in Processing Colors in Processing General Processing syntax Processing is for sketching Designed to allow artists

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Managing Screen Orientation ORIENTATIONS Portrait Landscape Reverse portrait Reverse landscape ON REVERSE PORTRAIT Android: all four orientations are

More information

HTML Exercise 21 Making Simple Rectangular Buttons

HTML Exercise 21 Making Simple Rectangular Buttons HTML Exercise 21 Making Simple Rectangular Buttons Buttons are extremely popular and found on virtually all Web sites with multiple pages. Buttons are graphical elements that help visitors move through

More information

JASCO CANVAS PROGRAM OPERATION MANUAL

JASCO CANVAS PROGRAM OPERATION MANUAL JASCO CANVAS PROGRAM OPERATION MANUAL P/N: 0302-1840A April 1999 Contents 1. What is JASCO Canvas?...1 1.1 Features...1 1.2 About this Manual...1 2. Installation...1 3. Operating Procedure - Tutorial...2

More information

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ]

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] s@lm@n Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] Android AND-401 : Practice Test Question No : 1 Which of the following is required to allow the Android

More information

Lecture 13 Mobile Programming. Google Maps Android API

Lecture 13 Mobile Programming. Google Maps Android API Lecture 13 Mobile Programming Google Maps Android API Agenda Generating MD5 Fingerprint Signing up for API Key (as developer) Permissions MapView and MapActivity Layers MyLocation Important!!! These lecture

More information

API Guide for Gesture Recognition Engine. Version 1.3

API Guide for Gesture Recognition Engine. Version 1.3 API Guide for Gesture Recognition Engine Version 1.3 Table of Contents Table of Contents...2 Gesture Recognition API...3 API URI... 3 Communication Protocol... 3 Getting Started...4 Protobuf... 4 WebSocket

More information

Kidspiration 3 Basics Website:

Kidspiration 3 Basics Website: Website: http://etc.usf.edu/te/ Kidspiration is the visual learning tool for K-5 learners from the makers of Inspiration. With Kidspiration, students can build graphic organizers such as webs, concept

More information

Block I Unit 2. Basic Constructs in Java. AOU Beirut Computer Science M301 Block I, unit 2 1

Block I Unit 2. Basic Constructs in Java. AOU Beirut Computer Science M301 Block I, unit 2 1 Block I Unit 2 Basic Constructs in Java M301 Block I, unit 2 1 Developing a Simple Java Program Objectives: Create a simple object using a constructor. Create and display a window frame. Paint a message

More information