Resources and Media and Dealies

Size: px
Start display at page:

Download "Resources and Media and Dealies"

Transcription

1 Resources and Media and Dealies In the second week, we created a new project that came with several files. The layout was kept in a res/layout folder. last week, we looked at a landscape layout, in the res/layout-land folder. Of course, the res/ folder is where we keep resources, but resources are comprised of far more than simply layouts. This week, we'll be mostly looking at different sorts of resources we can include, and how they're managed and used. Let's start simple, shall we? Reviewing the Folders First, let's take a look at our manifest file. There are a few things we glossed over before, that are now interesting: When specifying the app's icon, it makes reference The application itself has a label The app's theme is That's a familiar convention, isn't Similar when the system was managing id's for us. In this case, they're just additional resources that can be indexed, retrieved, and even accessed via code if necessary. mipmap Let's look at the mipmap first, since we've already glanced at this one. Note that, thanks to the different folders, we can actually have multiple versions of a resource, to accommodate, for example, different pixel densities. We'll be coming back to this one, so we're good for now. values Let's look at the project's folder, and take a look in the values folder of the resources. Inside, we'll see three initial XML files (we can add more later): colors.xml strings.xml styles.xml The names make their functions easy to guess, but let's still open them up and see how they work. It's worth remembering that we don't have to use these, but it's a good idea.

2 Additional Folders We aren't using any of them currently, but there are a few more folders worth noting. res/raw This one's typically used for files that you wish to be able to access as resources, but don't want managed in the traditional way. Examples include audio files, and images that absolutely can't be rescaled/compressed/etc. res/menu Action menus, context menus, etc. Typically, we define these via XML, and this is a useful place for them. res/xml If, for some reason, you need to include additional xml files, cram'em here. res/libs Have some additional libraries? Stick'em here! We can also define specialized versions of most of our folders. e.g. drawable-xhdpi, values-v11, etc. Let's get to customizing our content, shall we? values Resources strings.xml Let's edit our strings first. The default application name is fine, but let's handle our 'Hello World' more appropriately: <string name= hello_world >Hello World!</string> Great! And... how do we use it? Go back to the layout file, and look at the android:text attribute. The convention is the same for strings as it is for We might need some dummy data for later, so I'll also add: <string name= str_name >Dealies Unlimited</string> <string name= str_address >Canadia</string> <string name= str_message ><b>howdy!</b></string> If you try copying&pasting, remember to watch out for the quotation marks.

3 As mentioned earlier, we can access these resources via code, so it's easy to predict what this does, right? Toast.makeText(this,"Hello "+R.string.str_name+"!",Toast.LENGTH_SHORT).show(); Of course! So easy, in fact, that we don't even need to bother testing. But, for thoroughness, let's test anyway (done testing?) (great. now stop throwing things at me. this actually does make sense!) The fix is easy: just use the getstring function. dimens.xml Remember how, the other week, I mentioned in passing that you probably should explicitly hardcode things like padding and margins? That's because things like that are related to either styles or dimensions. Either way, they're about presentation, so they should be established elsewhere. We don't have a dimens.xml by default, but we can easily create it. Let's actually use Android Studio to create it, k? Then, let's give it some contents: <resources> <dimen name="small_size">15dp</dimen> <dimen name="medium_size">15sp</dimen> <dimen name="large_size">20pt</dimen> </resources> Hmmm... something seems fishy there... Let's try adding some text fields to our activity, so we can take a look. <LinearLayout xmlns:android=" android:orientation="vertical" > <TextView android:id="@+id/name_view" android:text="@string/str_name" android:textsize="@dimen/small_size" <TextView android:id="@+id/address_view" android:textsize="@dimen/medium_size" <!-- We'll set this address programmatically -->

4 <TextView </LinearLayout> Note that the comment promises to set one of the text fields programmatically, so that's easy: ((TextView)findViewById(R.id.address_view)).setText(getString(R.string.str_address)); Let's see what we have so far... By the way, 1pt should be 1/72 nd of an inch, but I wouldn't necessarily rely on that too heavily. The difference between dip and sp may or may not be visible, depending on other settings. Also, note that settextsize is a programmatic option, if desired (but I wouldn't advise it). If you do want to do it, use getresources().getdimension instead of getstring. color.xml This one is pretty easy, since we've already played with colour a little bit. Note that there are a few different ways to specify hexadecimal colours: #RGB, #RRGGBB, #ARGB, and #AARRGGBB, for example. We can either define some new colours, or we can redefine the existing ones (used by the theme). Or both! We have things like getresources.getcolor, settextcolor, etc., to play with. styles.xml If you take a look at the default theme for the application, you'll notice that it's pretty sparse. This is largely because one theme may extend another. In this case, our AppTheme is just an existing theme, but with three colours overridden. If desired, we could create another theme, but we can also create individual styles for specific types of elements: <style name="style1"> <item name="android:textcolor">#00ff00</item> <item name="android:typeface">serif</item> <item name="android:textsize">30sp</item> </style> <style name="style2" parent="style1"> <!--Inherits from style1--> <item name="android:textcolor">#0000ff</item> <item name="android:typeface">sans</item> <item name="android:background">#ff0000</item> <item name="android:padding">10dip</item> </style> <!--Overrides colour and typeface, but inherits text size--> <style name="style3" parent="style2"> <item name="android:textcolor">#00ff00</item> <item name="android:background"># </item> <item name="android:typeface">monospace</item> <item name="android:gravity">center</item> </style>

5 We should ensure that we roughly understand this before we try using it. Let's add the three styles to our TextViews. Note that we just define style, not android:style. Let's run it to ensure that we're good to continue. Of course, if we'd wanted to, we could have changed the android:theme in the manifest, but be careful with this (particularly if you're only specifying a couple values within a style. Before we continue... Let's add a button, and have it start up the next Activity (say, Pebbles). Arrays Just as with any other example of development, sometimes you want to associate a single name with a single value, but other times you want a single name to match up with a collection of values. Android does afford us a simple form of arrays. We could keep them in an arrays.xml. On the other hand, since our initial arrays will be of strings, I'm going to put them into strings.xml. Let's add the following: <string-array name="fruits"> <item>apple</item> <item>mango</item> <item>orange</item> <item>purple</item> <item>banana</item> </string-array> Our layout will start out as: <LinearLayout xmlns:android=" android:orientation="vertical" > <TextView android:id="@+id/fruits_view" </LinearLayout> Clearly, we need to add some content. Let's take a look at the activity's java code: TextView fruitses=(textview)findviewbyid(r.id.fruits_view); String[] fruitsarr=getresources().getstringarray(r.array.fruits); String str=""; for (String s:fruitsarr) str+=s+"\n"; fruitses.settext(str);

6 Well, if we run it, it works. And we can easily see what's going on. Still, it should be readily apparent that this is poor form. When it's running, it's easy to understand. But our preview in Android Studio? Less than helpful. Sometimes (oftentimes) that can be unavoidable. But this is not one of those times. We'll be looking at a better alternative next week-ish. Variation: integer-array If we wanted, we could also define an integer array. There's little to gain by actually adding this, but let's just cover the important points: I'd probably create a new XML file: arrays.xml and then create an integer-array entry. Everything else would be essentially the same. Before the next step Once again, let's create a new Activity (say, Picturesque), and a button to start it. Drawables Drawables are an interesting thing, largely because they're actually several things. In general, a Drawable is something that can be drawn. This means you shouldn't count on things like event handling, etc. However, how it's drawn can vary quite a bit. For example: Bitmaps Nine Patches Vectors and various compound drawables Before we get any further, a note on the res/drawable vs res/mipmap folders: These aren't the same thing, even though they might seem like it. Both can have multiple variants for matching up with different resolutions, but the mechanism is different: The res/drawable folder contains images you might wish to use The variation (e.g. res/drawable-hdpi vs res/drawable-tvdpi) is depending on the screen's pixel density The res/mipmap folder also contains images, but typically just the launcher icons The variation (e.g. res/drawable-hdpi vs res/drawable-tvdpi) is simply based on what the system happens to want to take for a task. e.g. maybe it wants to use a different size app icon for the home screen, vs the app tray And, as mentioned earlier, the raw folder can also hold resources you don't want it to fiddle with. Let's try displaying a simple image.

7 ImageView This isn't likely to be terribly shocking: an ImageView is a View for displaying an Image. Find some image you'd like to use. I'll use one of the moon from NASA (in this example, called nasa_moon.jpg). I'd suggest using only lowercase letters, with no spaces. It'll have an image extension, but we won't be caring about that. Try putting it into the drawable folder. Now, let's edit our Picturesque layout file: <LinearLayout xmlns:android=" android:orientation="vertical" > <ImageView android:id="@+id/imageview" android:src="@drawable/nasa_moon" </LinearLayout> Try running it to see how it looks. Lastly, as a final fun thought, suppose we added an onclick even to the view (remember: even if Drawables don't have events, the view containing it still can), and had the following corresponding code: public void flippy(view v) { ImageView iv=(imageview)v; iv.setimageresource(r.drawable.noom_asan); } What would we expect? If we're curious We can have different versions of the same image. Just as with the layout vs layout-land, we can have different resolutions of the same images. As mentioned earlier, it's primarily to match pixel densities. So, for example, the default emulator we've been using will probably match up with drawable-xhdpi, but if we also have drawable-xxxhdpi, that'll match up with a higher-resolution * phone. * Well, no, but you know what I mean. Just for ha-ha's, you might want to test this out a bit (easy way just to see what I mean is to create additional folders, and put in slightly different-coloured versions, or just another picture altogether). Note that, if you want to do this, you don't have to specify complete sets of all resources. Android will always try for the most specific, and then work down.

8 Toggle Buttons I know this isn't related to resources, but I didn't want to deal with how irritating videos and sounds can be in Android, so we'll look at this instead. We won't actually need to make a new Activity. We can just modify our Picturesque. For the layout, we'll need to tweak our ImageView a bit as well: <LinearLayout xmlns:android=" android:orientation="vertical" > <ImageView android:scaletype="fitcenter" android:adjustviewbounds="true" android:id="@+id/imageview" android:src="@drawable/nasa_moon" android:onclick="flippy" <ToggleButton android:id="@+id/toggler" android:layout_width="wrap_content" android:texton="yeah!" android:textoff="naw!" </LinearLayout> The code to add is trivial: final ImageView image=(imageview)findviewbyid(r.id.imageview); final ToggleButton toggle=(togglebutton)findviewbyid(r.id.toggler); toggle.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { if (toggle.ischecked()) { image.setimageresource(r.drawable.noom_asan); } else { image.setimageresource(r.drawable.nasa_moon); } } }); to the end of oncreate is all it takes. Of course, there are some interesting points that could arise here...

9 Additional Considerations Remember that the list of Drawables was longer than just raster images. We aren't getting into them here (at least, for now), but there are plenty more options, including XML-based. Also, in addition to the res/ folder, sometimes you want to store files as files. That is, though the raw/ folder is good for dumping in arbitrary files to be indexed (as R.raw.filename), you could also wish to simply include a collection of application assets. That's an option, as well. Instead of being under res/ at all, they simply go under assets/ and are accessed, e.g., as such: InputStream in; AssetManager assetmanager=getassets(); try { in=assetmanager.open("somefile.something"); /*(And then read in, as from any other InputStream)*/ in.close(); }catch (IOException ioe) {/*Do something here*/} Additionally, there are different reasons we might want to provide more specific resources, beyond just pixel density. Besides screen size, there are also considerations such as API level (e.g. for layouts), and locale (say, for strings). What would be the result of changing the colours in a values-v24 folder? What about the strings in values-fr?

Eventually, you'll be returned to the AVD Manager. From there, you'll see your new device.

Eventually, you'll be returned to the AVD Manager. From there, you'll see your new device. Let's get started! Start Studio We might have a bit of work to do here Create new project Let's give it a useful name Note the traditional convention for company/package names We don't need C++ support

More information

Chapter 2 Welcome App

Chapter 2 Welcome App 2.8 Internationalizing Your App 1 Chapter 2 Welcome App 2.1 Introduction a. Android Studio s layout editor enables you to build GUIs using drag-and-drop techniques. b. You can edit the GUI s XML directly.

More information

Programming with Android: Application Resources. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: Application Resources. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: Application Resources Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline What is a resource? Declaration of a resource Resource

More information

Fig. 2.2 New Android Application dialog. 2.3 Creating an App 41

Fig. 2.2 New Android Application dialog. 2.3 Creating an App 41 AndroidHTP_02.fm Page 41 Wednesday, April 30, 2014 3:00 PM 2.3 Creating an App 41 the Welcome app s TextView and the ImageViews accessibility strings, then shows how to test the app on an AVD configured

More information

CS 403X Mobile and Ubiquitous Computing Lecture 3: Introduction to Android Programming Emmanuel Agu

CS 403X Mobile and Ubiquitous Computing Lecture 3: Introduction to Android Programming Emmanuel Agu CS 403X Mobile and Ubiquitous Computing Lecture 3: Introduction to Android Programming Emmanuel Agu Android UI Tour Home Screen First screen, includes favorites tray (e.g phone, mail, messaging, web, etc)

More information

Android HelloWorld - Example. Tushar B. Kute,

Android HelloWorld - Example. Tushar B. Kute, Android HelloWorld - Example Tushar B. Kute, http://tusharkute.com Anatomy of Android Application Anatomy of Android Application Java This contains the.java source files for your project. By default, it

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

(Refer Slide Time: 0:48)

(Refer Slide Time: 0:48) Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Lecture 10 Android Studio Last week gave you a quick introduction to android program. You develop a simple

More information

Adapting to Data. Before we get to the fun stuff... Initial setup

Adapting to Data. Before we get to the fun stuff... Initial setup Adapting to Data So far, we've mostly been sticking with a recurring theme: visual elements are tied to XML-defined resources, not programmatic creation or management. But that won't always be the case.

More information

Layout and Containers

Layout and Containers Geez, that title is freakin' huge. Layout and Containers This week, we'll mostly just be looking at how to better-arrange elements. That will include our first introduction into managed resources (even

More information

Programming with Android: Application Resources. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: Application Resources. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: Application Resources Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline What is a resource? Declaration of a resource Resource

More information

How to support multiple screens using android? Synopsis

How to support multiple screens using android? Synopsis How to support multiple screens using android? Synopsis Author: Michal Derdak Supervisor: Anders Kristian Børjesson Semester: 4th Date: 20 5 2016 Content Introduction 1 Problem definition 1 Activities

More information

COMP4521 EMBEDDED SYSTEMS SOFTWARE

COMP4521 EMBEDDED SYSTEMS SOFTWARE COMP4521 EMBEDDED SYSTEMS SOFTWARE LAB 1: DEVELOPING SIMPLE APPLICATIONS FOR ANDROID INTRODUCTION Android is a mobile platform/os that uses a modified version of the Linux kernel. It was initially developed

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

More Effective Layouts

More Effective Layouts More Effective Layouts In past weeks, we've looked at ways to make more effective use of the presented display (e.g. elastic layouts, and separate layouts for portrait and landscape), as well as autogenerating

More information

Introduction. Using Styles. Word 2010 Styles and Themes. To Select a Style: Page 1

Introduction. Using Styles. Word 2010 Styles and Themes. To Select a Style: Page 1 Word 2010 Styles and Themes Introduction Page 1 Styles and themes are powerful tools in Word that can help you easily create professional looking documents. A style is a predefined combination of font

More information

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between

PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between MITOCW Lecture 10A [MUSIC PLAYING] PROFESSOR: Last time, we took a look at an explicit control evaluator for Lisp, and that bridged the gap between all these high-level languages like Lisp and the query

More information

CS 528 Mobile and Ubiquitous Computing Lecture 2: Intro to Android Programming Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 2: Intro to Android Programming Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 2: Intro to Android Programming Emmanuel Agu Android UI Tour Home Screen First screen after unlocking phone or hitting home button Includes favorites tray

More information

Hello World. Lesson 1. Android Developer Fundamentals. Android Developer Fundamentals. Layouts, and. NonCommercial

Hello World. Lesson 1. Android Developer Fundamentals. Android Developer Fundamentals. Layouts, and. NonCommercial Hello World Lesson 1 This work is licensed This under work a Creative is is licensed Commons under a a Attribution-NonCommercial Creative 4.0 Commons International Attribution- License 1 NonCommercial

More information

XML Tutorial. NOTE: This course is for basic concepts of XML in line with our existing Android Studio project.

XML Tutorial. NOTE: This course is for basic concepts of XML in line with our existing Android Studio project. XML Tutorial XML stands for extensible Markup Language. XML is a markup language much like HTML used to describe data. XML tags are not predefined in XML. We should define our own Tags. Xml is well readable

More information

Skill 1: Multiplying Polynomials

Skill 1: Multiplying Polynomials CS103 Spring 2018 Mathematical Prerequisites Although CS103 is primarily a math class, this course does not require any higher math as a prerequisite. The most advanced level of mathematics you'll need

More information

(Refer Slide Time: 1:12)

(Refer Slide Time: 1:12) Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Lecture 06 Android Studio Setup Hello, today s lecture is your first lecture to watch android development.

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

Produced by. Mobile Application Development. Eamonn de Leastar David Drohan

Produced by. Mobile Application Development. Eamonn de Leastar David Drohan Mobile Application Development Produced by Eamonn de Leastar (edeleastar@wit.ie) David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie

More information

MITOCW ocw f99-lec07_300k

MITOCW ocw f99-lec07_300k MITOCW ocw-18.06-f99-lec07_300k OK, here's linear algebra lecture seven. I've been talking about vector spaces and specially the null space of a matrix and the column space of a matrix. What's in those

More information

CS 528 Mobile and Ubiquitous Computing Lecture 2a: Android UI Design in XML + Examples. Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 2a: Android UI Design in XML + Examples. Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 2a: Android UI Design in XML + Examples Emmanuel Agu Android UI Design in XML Recall: Files Hello World Android Project XML file used to design Android UI

More information

O X X X O O X O X. Tic-Tac-Toe. 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 2: The Ultimate Tic-Tac-Toe Game

O X X X O O X O X. Tic-Tac-Toe. 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 2: The Ultimate Tic-Tac-Toe Game Tic-Tac-Toe 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 2: The Ultimate Tic-Tac-Toe Game Dr Dimitris C. Dracopoulos O X X X O O X O X The Ultimate Tic-Tac-Toe: Rules of the Game Dimitris C. Dracopoulos

More information

Android UI DateBasics

Android UI DateBasics Android UI DateBasics Why split the UI and programing tasks for a Android AP The most convenient and maintainable way to design application user interfaces is by creating XML layout resources. This method

More information

Android & iphone. Amir Eibagi. Localization

Android & iphone. Amir Eibagi. Localization Android & iphone Amir Eibagi Localization Topics Android Localization: Overview Language & Strings Country/region language variations Images & Media Currency, date & Time iphone Localization Language &

More information

Programming Concepts and Skills. Creating an Android Project

Programming Concepts and Skills. Creating an Android Project Programming Concepts and Skills Creating an Android Project Getting Started An Android project contains all the files that comprise the source code for your Android app. The Android SDK tools make it easy

More information

Java & Android. Java Fundamentals. Madis Pink 2016 Tartu

Java & Android. Java Fundamentals. Madis Pink 2016 Tartu Java & Android Java Fundamentals Madis Pink 2016 Tartu 1 Agenda» Brief background intro to Android» Android app basics:» Activities & Intents» Resources» GUI» Tools 2 Android» A Linux-based Operating System»

More information

Managing Data. However, we'll be looking at two other forms of persistence today: (shared) preferences, and databases.

Managing Data. However, we'll be looking at two other forms of persistence today: (shared) preferences, and databases. Managing Data This week, we'll be looking at managing information. There are actually many ways to store information for later retrieval. In fact, feel free to take a look at the Android Developer pages:

More information

Android Workshop: Model View Controller ( MVC):

Android Workshop: Model View Controller ( MVC): Android Workshop: Android Details: Android is framework that provides java programmers the ability to control different aspects of smart devices. This interaction happens through the Android SDK (Software

More information

Using the API: Introductory Graphics Java Programming 1 Lesson 8

Using the API: Introductory Graphics Java Programming 1 Lesson 8 Using the API: Introductory Graphics Java Programming 1 Lesson 8 Using Java Provided Classes In this lesson we'll focus on using the Graphics class and its capabilities. This will serve two purposes: first

More information

Android Programming Family Fun Day using AppInventor

Android Programming Family Fun Day using AppInventor Android Programming Family Fun Day using AppInventor Table of Contents A step-by-step guide to making a simple app...2 Getting your app running on the emulator...9 Getting your app onto your phone or tablet...10

More information

============================================================================

============================================================================ Linux, Cinnamon: cannot create panel icon Posted by JN_Mint - 2019/01/05 21:28 In Cinnamon (on Mint 19.3), with 'show tray icon' enabled in Rainlendar, there is no icon in any panel on my system and Cinnamon

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

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

Mobile Development Lecture 10: Fragments

Mobile Development Lecture 10: Fragments Mobile Development Lecture 10: Fragments Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Elgayyar.weebly.com Situational Layouts Your app can use different layout in different situations: different device type

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

CS 528 Mobile and Ubiquitous Computing Lecture 2: Intro to Android Programming Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 2: Intro to Android Programming Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 2: Intro to Android Programming Emmanuel Agu Students: Please Introduce Yourselves! Name Status: grad/undergrad, year Relevant background: e.g. coal miner

More information

A PROGRAM IS A SEQUENCE of instructions that a computer can execute to

A PROGRAM IS A SEQUENCE of instructions that a computer can execute to A PROGRAM IS A SEQUENCE of instructions that a computer can execute to perform some task. A simple enough idea, but for the computer to make any use of the instructions, they must be written in a form

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

MITOCW watch?v=flgjisf3l78

MITOCW watch?v=flgjisf3l78 MITOCW watch?v=flgjisf3l78 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

More information

University of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World

University of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World University of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World Before you do anything read all of the following red paragraph! For this lab you

More information

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek

It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek Seite 1 von 5 Issue Date: FoxTalk July 2000 It Might Be Valid, But It's Still Wrong Paul Maskens and Andy Kramek This month, Paul Maskens and Andy Kramek discuss the problems of validating data entry.

More information

CMSC 436 Lab 10. App Widgets and Supporting Different Devices

CMSC 436 Lab 10. App Widgets and Supporting Different Devices CMSC 436 Lab 10 App Widgets and Supporting Different Devices Overview For this lab you will create an App Widget that uses a Configuration Activity You will also localize the widget to support different

More information

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 [talking head] Formal Methods of Software Engineering means the use of mathematics as an aid to writing programs. Before we can

More information

Android Development Crash Course

Android Development Crash Course Android Development Crash Course Campus Sundsvall, 2015 Stefan Forsström Department of Information and Communication Systems Mid Sweden University, Sundsvall, Sweden OVERVIEW The Android Platform Start

More information

Azon Master Class. By Ryan Stevenson Guidebook #5 WordPress Usage

Azon Master Class. By Ryan Stevenson   Guidebook #5 WordPress Usage Azon Master Class By Ryan Stevenson https://ryanstevensonplugins.com/ Guidebook #5 WordPress Usage Table of Contents 1. Widget Setup & Usage 2. WordPress Menu System 3. Categories, Posts & Tags 4. WordPress

More information

Grocery List: An Android Application

Grocery List: An Android Application The University of Akron IdeaExchange@UAkron Honors Research Projects The Dr. Gary B. and Pamela S. Williams Honors College Spring 2018 Grocery List: An Android Application Daniel McFadden djm188@zips.uakron.edu

More information

04. Learn the basic widget. DKU-MUST Mobile ICT Education Center

04. Learn the basic widget. DKU-MUST Mobile ICT Education Center 04. Learn the basic widget DKU-MUST Mobile ICT Education Center Goal Understanding of the View and Inheritance of View. Learn how to use the default widget. Learn basic programming of the Android App.

More information

LECTURE 08 UI AND EVENT HANDLING

LECTURE 08 UI AND EVENT HANDLING MOBILE APPLICATION DEVELOPMENT LECTURE 08 UI AND EVENT HANDLING IMRAN IHSAN ASSISTANT PROFESSOR WWW.IMRANIHSAN.COM User Interface User Interface The Android Widget Toolbox 1. TextView 2. EditText 3. Spinner

More information

Post Experiment Interview Questions

Post Experiment Interview Questions Post Experiment Interview Questions Questions about the Maximum Problem 1. What is this problem statement asking? 2. What is meant by positive integers? 3. What does it mean by the user entering valid

More information

Android UI Development

Android UI Development Android UI Development Android UI Studio Widget Layout Android UI 1 Building Applications A typical application will include: Activities - MainActivity as your entry point - Possibly other activities (corresponding

More information

Lab 1 - Setting up the User s Profile UI

Lab 1 - Setting up the User s Profile UI Lab 1 - Setting up the User s Profile UI Getting started This is the first in a series of labs that allow you to develop the MyRuns App. The goal of the app is to capture and display (using maps) walks

More information

Java Programming Constructs Java Programming 2 Lesson 1

Java Programming Constructs Java Programming 2 Lesson 1 Java Programming Constructs Java Programming 2 Lesson 1 Course Objectives Welcome to OST's Java 2 course! In this course, you'll learn more in-depth concepts and syntax of the Java Programming language.

More information

Solving an Android Threading Problem

Solving an Android Threading Problem Home Java News Brief Archive OCI Educational Services Solving an Android Threading Problem Introduction by Eric M. Burke, Principal Software Engineer Object Computing, Inc. (OCI) By now, you probably know

More information

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides

Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides Hi everyone. Starting this week I'm going to make a couple tweaks to how section is run. The first thing is that I'm going to go over all the slides for both problems first, and let you guys code them

More information

CS 463 Project 1 Imperative/OOP Fractals

CS 463 Project 1 Imperative/OOP Fractals CS 463 Project 1 Imperative/OOP Fractals The goal of a couple of our projects is to compare a simple project across different programming paradigms. This semester, we will calculate the Mandelbrot Set

More information

UI (User Interface) overview Supporting Multiple Screens Touch events and listeners

UI (User Interface) overview Supporting Multiple Screens Touch events and listeners http://www.android.com/ UI (User Interface) overview Supporting Multiple Screens Touch events and listeners User Interface Layout The Android user interface (UI) consists of screen views (one or more viewgroups

More information

The Stack, Free Store, and Global Namespace

The Stack, Free Store, and Global Namespace Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

More information

Word 2010 Styles and Themes

Word 2010 Styles and Themes Introduction Styles and themes are powerful tools in Word that can help you easily create professional looking documents. A style is a predefined combination of font style, colour, and size of text that

More information

Software Practice 3 Before we start Today s lecture Today s Task Team organization

Software Practice 3 Before we start Today s lecture Today s Task Team organization 1 Software Practice 3 Before we start Today s lecture Today s Task Team organization Prof. Hwansoo Han T.A. Jeonghwan Park 43 2 Lecture Schedule Spring 2017 (Monday) This schedule can be changed M A R

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

Casting in C++ (intermediate level)

Casting in C++ (intermediate level) 1 of 5 10/5/2009 1:14 PM Casting in C++ (intermediate level) Casting isn't usually necessary in student-level C++ code, but understanding why it's needed and the restrictions involved can help widen one's

More information

ANDROID USER INTERFACE

ANDROID USER INTERFACE 1 ANDROID USER INTERFACE Views FUNDAMENTAL UI DESIGN Visual interface element (controls or widgets) ViewGroup Contains multiple widgets. Layouts inherit the ViewGroup class Activities Screen being displayed

More information

Using Windows Explorer and Libraries in Windows 7

Using Windows Explorer and Libraries in Windows 7 Using Windows Explorer and Libraries in Windows 7 Windows Explorer is a program that is used like a folder to navigate through the different parts of your computer. Using Windows Explorer, you can view

More information

HELPLINE. Dilwyn Jones

HELPLINE. Dilwyn Jones HELPLINE Dilwyn Jones Remember that you can send me your Helpline queries by email to helpline@quanta.org.uk, or by letter to the address inside the front cover. While we do our best to help, we obviously

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

CS371m - Mobile Computing. User Interface Basics

CS371m - Mobile Computing. User Interface Basics CS371m - Mobile Computing User Interface Basics Clicker Question Have you ever implemented a Graphical User Interface (GUI) as part of a program? A. Yes, in another class. B. Yes, at a job or internship.

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

https://github.com/gns3/gns3-registry/blob/master/schemas/appliance.json

https://github.com/gns3/gns3-registry/blob/master/schemas/appliance.json Mini How-To guide for using and modifying appliance templates. The appliance templates from the marketplace are a way to sort of make it a bit easier to import a Qemu virtual machine into GNS3. I've noticed

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

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Programming. Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Programming. Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android Programming Emmanuel Agu Android Apps: Big Picture UI Design using XML UI design code (XML) separate from the program (Java) Why?

More information

GUI Design for Android Applications

GUI Design for Android Applications GUI Design for Android Applications SE3A04 Tutorial Jason Jaskolka Department of Computing and Software Faculty of Engineering McMaster University Hamilton, Ontario, Canada jaskolj@mcmaster.ca November

More information

mk-convert Contents 1 Converting to minikanren, quasimatically. 08 July 2014

mk-convert Contents 1 Converting to minikanren, quasimatically. 08 July 2014 mk-convert 08 July 2014 Contents 1 Converting to minikanren, quasimatically. 1 1.1 Variations on a Scheme..................... 2 1.2 Racket to minikanren, nally.................. 8 1.3 Back to the beginning......................

More information

MITOCW ocw f99-lec12_300k

MITOCW ocw f99-lec12_300k MITOCW ocw-18.06-f99-lec12_300k This is lecture twelve. OK. We've reached twelve lectures. And this one is more than the others about applications of linear algebra. And I'll confess. When I'm giving you

More information

Android Application Development 101. Jason Chen Google I/O 2008

Android Application Development 101. Jason Chen Google I/O 2008 Android Application Development 101 Jason Chen Google I/O 2008 Goal Get you an idea of how to start developing Android applications Introduce major Android application concepts Provide pointers for where

More information

Supporting Class / C++ Lecture Notes

Supporting Class / C++ Lecture Notes Goal Supporting Class / C++ Lecture Notes You started with an understanding of how to write Java programs. This course is about explaining the path from Java to executing programs. We proceeded in a mostly

More information

MITOCW watch?v=9h6muyzjms0

MITOCW watch?v=9h6muyzjms0 MITOCW watch?v=9h6muyzjms0 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

BCA 6. Question Bank

BCA 6. Question Bank BCA 6 030010601 : Introduction to Mobile Application Development Question Bank Unit 1: Introduction to Android and Development tools Short questions 1. What kind of tool is used to simulate Android application?

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

EMBEDDED SYSTEMS PROGRAMMING UI and Android

EMBEDDED SYSTEMS PROGRAMMING UI and Android EMBEDDED SYSTEMS PROGRAMMING 2016-17 UI and Android STANDARD GESTURES (1/2) UI classes inheriting from View allow to set listeners that respond to basic gestures. Listeners are defined by suitable interfaces.

More information

MITOCW watch?v=0jljzrnhwoi

MITOCW watch?v=0jljzrnhwoi MITOCW watch?v=0jljzrnhwoi The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

A Quick Intro to Coding Applications for Android Beginners, stop searching Google and start here.

A Quick Intro to Coding Applications for Android Beginners, stop searching Google and start here. A Quick Intro to Coding Applications for Android Beginners, stop searching Google and start here. Written by Trevelyn (Douglas@WeakNetLabs.com) Feb 2010 ABSTRACT: This guide is for those who never coded

More information

UI Review. The Good: Winamp

UI Review. The Good: Winamp UI Review The Good: Winamp Winamp is a music player like itunes or the Windows Media Player. It plays music, creates playlists, and lets you edit metadata for media files. I like the winamp interface for

More information

User Interface: Layout. Asst. Prof. Dr. Kanda Runapongsa Saikaew Computer Engineering Khon Kaen University

User Interface: Layout. Asst. Prof. Dr. Kanda Runapongsa Saikaew Computer Engineering Khon Kaen University User Interface: Layout Asst. Prof. Dr. Kanda Runapongsa Saikaew Computer Engineering Khon Kaen University http://twitter.com/krunapon Agenda User Interface Declaring Layout Common Layouts User Interface

More information

Figure 2.10 demonstrates the creation of a new project named Chapter2 using the wizard.

Figure 2.10 demonstrates the creation of a new project named Chapter2 using the wizard. 44 CHAPTER 2 Android s development environment Figure 2.10 demonstrates the creation of a new project named Chapter2 using the wizard. TIP You ll want the package name of your applications to be unique

More information

Android Beginners Workshop

Android Beginners Workshop Android Beginners Workshop at the M O B IL E M O N D AY m 2 d 2 D E V E L O P E R D A Y February, 23 th 2010 Sven Woltmann, AndroidPIT Sven Woltmann Studied Computer Science at the TU Ilmenau, 1994-1999

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Recitation 4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To make

More information

The following content is provided under a Creative Commons license. Your support

The following content is provided under a Creative Commons license. Your support MITOCW Lecture 23 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality, educational resources for free. To make a

More information

Android Navigation Drawer for Sliding Menu / Sidebar

Android Navigation Drawer for Sliding Menu / Sidebar Android Navigation Drawer for Sliding Menu / Sidebar by Kapil - Tuesday, December 15, 2015 http://www.androidtutorialpoint.com/material-design/android-navigation-drawer-for-sliding-menusidebar/ YouTube

More information

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012 ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012 AGENDA Android v. ios Design Paradigms Setup Application Framework Demo Libraries Distribution ANDROID V. IOS Android $25 one-time

More information

Linked Lists. What is a Linked List?

Linked Lists. What is a Linked List? Linked Lists Along with arrays, linked lists form the basis for pretty much every other data stucture out there. This makes learning and understand linked lists very important. They are also usually the

More information

Mobile Application Development - Android

Mobile Application Development - Android Mobile Application Development - Android MTAT.03.262 Satish Srirama satish.srirama@ut.ee Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts

More information

MITOCW watch?v=r6-lqbquci0

MITOCW watch?v=r6-lqbquci0 MITOCW watch?v=r6-lqbquci0 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To

More information

Using X-Particles with Team Render

Using X-Particles with Team Render Using X-Particles with Team Render Some users have experienced difficulty in using X-Particles with Team Render, so we have prepared this guide to using them together. Caching Using Team Render to Picture

More information

Slide 1 CS 170 Java Programming 1 Testing Karel

Slide 1 CS 170 Java Programming 1 Testing Karel CS 170 Java Programming 1 Testing Karel Introducing Unit Tests to Karel's World Slide 1 CS 170 Java Programming 1 Testing Karel Hi Everybody. This is the CS 170, Java Programming 1 lecture, Testing Karel.

More information

TourMaker Reference Manual. Intro

TourMaker Reference Manual. Intro TourMaker Reference Manual Intro Getting Started Tutorial: Edit An Existing Tour Key Features & Tips Tutorial: Create A New Tour Posting A Tour Run Tours From Your Hard Drive Intro The World Wide Web is

More information