Layout and Containers
|
|
- Barbara Chase
- 5 years ago
- Views:
Transcription
1 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 though that's the primary topic for next week). We'll also take our first look into making use of multiple Activities. Preparation First, let's get some basic stuff set up, before we add the 'fun' to it! Project I think we should make a new project. You're welcome to add onto last week's if you prefer, but I'll be starting fresh. Since I'm not likely to return to last week's any time soon, I'll probably delete the build and.gradle (note: not gradle!) folders from last week's project. Initial layout I'm going to start just like last week: make a project with a provided empty activity. Though it doesn't really matter what we call that initial Activity, I'll call mine Splash. I honestly don't care what the initial splashscreen looks like (feel free to put a picture or something). For mine, I'll change the default text to something else (e.g. Brock University, or Dealies. Probably the latter). However, we're not adding any functionality yet. First, we want another layout. That means another Activity... Let's create a new Activity. I'll call mine Relative. How do we do this? There are several ways, including directly creating the files you need, and adding the entry to the manifest yourself. But that's work. I'll go with: File New Activity Empty Activity Note that this will not be a Launcher Activity! There's one minor thing to watch out for: sometimes Android Studio is a bit odd for picking up the correct 'package name'. Make sure it hasn't changed it for you in this dialog. Ideally, it's now created the files we need, and also added an entry to the manifest. All done? Great! We now have two (trivial) activities! We'll decorate the new Activity in a moment; for now, just make sure it looks somehow different from your initial one (e.g. if you changed the text in the first, you're fine).
2 Starting new activities There'll be several ways to start new Activities. We'll be looking at the simplest for now. There's just one catch: we don't want our pseudo-splashscreen to load the next screen immediately. What's the alternative then? A Thread.sleep()? Some things to remember: An Activity is a view corresponding to the current mode or behaviour But it's also, basically, a UI UI's need to be responsive That means they can't just go to sleep for a while Even though we don't want our splash screen to response to anything, the Android system is designed such that an unresponsive system is treated akin to a crash Later on, when we have heavy lifting to do, we'll look into proper multiprocessing For now, we'll just be using a simple Handler to load the next Activity up The Handler will operate outside of the Activity's normal execution, so it doesn't hinder it Note that this is technically how you make a bad splash screen Checking we're all on the same page... We should all have the same setup at this point: An activity that acts as a main/launcher Another activity that currently has no way to starting Layouts for each (the contents don't matter, so long as they're different) Start the project as-is, and you should see your 'splash screen'. Making the splash screen splash We're not really talking about themes yet, so we won't worry about making the splash screen look like one. However, if you like, you can add the code: getsupportactionbar().hide(); to the end of Splash's oncreate() method. That should at least hide the title from the top. What matters most is launching the next Activity.
3 There are numerous ways to do this, but they'll generally involve a new Intent, and some variation of startactivity. What won't work We can't just create a new instance of our Relative Activity, and expect that to somehow display. What will work, but not usefully startactivity(new Intent(Splash.this,Relative.class)); This will definitely start the new Activity. However, there are two problems: You won't even get to see the splash screen at all If you press back on the new Activity, it will return to the splash screen (which is odd) The latter is easy to fix: Almost there startactivity(new Intent(Splash.this,Relative.class)); finish(); This tells it to dispose of the current Activity (because we're done with it). That means it won't be left on the Activity stack, and thus you can't return to it. If you're interested, there are actually some interesting things you can do, specifying parent Activities, and such, but that isn't necessary for this level. All that's left is the delay. We simply need to offload that delay into a separate Runnable. One (though not the only) solution new Handler().postDelayed(new Runnable() { public void run() { } }, 3 * 1000); startactivity(new Intent(Splash.this, Relative.class)); finish(); I'm sure we'll want to discuss the individual components of this. Remember: this isn't technically the best way to do a splash screen (or even necessarily good ). It's chosen because it's good for illustrative purposes. If you're interested in the topic from an actual development perspective, there's a nice (and quick) read here:
4 What we have now Humour me, and let's go through the checklist again: We have an Activity that acts as a splash screen, and automatically starts the program proper We have an Activity, called Relative (or whatever), that's currently empty That Relative Activity is effectively the starting point, as backing out will close the program Before we continue We're probably going to be re-executing our project frequently. If you don't feel like sitting through that long splash screen delay, feel free to either shorten it; remove it; or add an intent filter to the Relative Activity, and edit the project's run configuration to jump directly to Relative. Different layouts The current default layout for Android Studio is the ConstraintLayout. We've already looked at it a little, but didn't really get into its more powerful features. Constraint-solving is actually very important, and in fact is a major tool for effective development and UIs. However, this is an introductory course, and it's left to you to decide if you want to go into UI/UX. In other words: it's neat; it's powerful; if you're interested, Google is your friend. RelativeLayout This layout used to be the default, before ConstraintLayout, and the similarities will be quickly apparent. Let's start our first example by replacing the provided layout for our Relative Activity: <?xml version="1.0" encoding="utf 8"?> <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="10dip" android:paddingright="10dip" android:paddingtop="10dip" android:paddingbottom="10dip" tools:context=".relative" android:background="#a0a0ff" > </RelativeLayout> Note that much of this is highly inappropriate, design-wise. We haven't covered resources and themes yet.
5 Let's add a few Views: android:layout_width="200dip" android:layout_height="140dip" android:text="it's all Relative... Layout" <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="next" android:id="@+id/relativenext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="click for Next" Naturally, if we try viewing it, as-is, everything will overlap. What can we do about that? Let's focus on the first TextView for now: android:layout_width="200dip" android:layout_height="140dip" android:text="it's all Relative... Layout" android:layout_centerinparent="true" Okay, that's a start. Note that, because the View itself it centred, but the text isn't centred within the View, the text isn't centred within the display area. What if we wanted control over that? android:gravity="center" will centre it just fine. What if we wanted the text in the bottom right? android:gravity="right" android:gravity="bottom" is less friendly. And we can see why pretty easily: we have two, conflicting, definitions. Easy solution, though: android:gravity="right bottom" gives us what we need. Okay then, howsabout we fix that Button? Personally, I'd like it right in the bottom-centre. How can we do that? Pretty easily, actually: <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:layout_centerhorizontal="true" android:text="next" android:id="@+id/relativenext" So that's no big deal. The catch will be aligning the text label for the button. I want that one to be to the right of the Button. How do we do that? Huh... the Button has an id. Wonder if we can use that...
6 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="click for Next" And now we finally see why it's called a Relative Layout. All positioning is done relative to some other existing element; whether that be the enclosing parent container, or another explicitly-identified View. Thanks to the wonders of code-completion, you can actually just browse the options pretty easily. Assuming we all understand up to this point, let's continue on to the next one, but first... Starting the next Activity While although we don't have the next Activity to start yet, we should still set up the Button to invoke it, just so we can complete this exercise before starting the next. You can set up whatever click-handling mechanism you like. Since we know we'll only have one Button behaviour, I'll just use the onclick property. The code is simple enough: public void linearnext(view button) { startactivity(new Intent(Relative.this,Linearity.class)); } Note that I didn't bother adding finish(), since I could, hypothetically, wish to return to this Activity. Interjection Neither here nor there, but try adding this to the new Linearity Activity listing within the manifest: android:parentactivityname=".relative" See if you can spot what it does. LinearLayout Ostensibly, LinearLayout is one of the less-powerful layout containers. It certainly doesn't have many features. It's designed with the assumption that you simply want to dump in multiple Views, which will all flow in the same direction. If you want to have many items, flowing in different directions, simply have LinearLayouts within LinearLayouts (or, of course, you can mix'n'match different Layouts within each other). Let's start simple:
7 <?xml version="1.0" encoding="utf 8"?> <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="10dip" android:paddingright="10dip" android:paddingtop="10dip" android:paddingbottom="10dip" tools:context=".linearity" android:background="#a0a0ff" android:orientation="vertical" > android:layout_width="120dip" android:layout_height="80dip" android:text="first!" android:layout_width="120dip" android:layout_height="80dip" android:text="second!" android:layout_width="120dip" android:layout_height="80dip" android:text="third!" android:layout_width="120dip" android:layout_height="80dip" android:text="fourth!" <EditText android:layout_width="120dip" android:layout_height="80dip" android:layout_width="120dip" android:layout_height="80dip" android:text="next!" android:onclick="donelinear" </LinearLayout> I realize that's a lot, but note the opportunities for copy&paste.
8 Okay, so what's new? Most notably, we include a 'hint' that it should arrange them not only linearly, but vertically Before we continue... Let's do a bit of prep for when we'll be going to the next Activity. All we need to do is to add a donelinear method. I know I'm going to want to pass along the data from the EditText to the next Activity, so I'll just add a Toast as a placeholder for now: public void donelinear(view b) { EditText textfield=(edittext)findviewbyid(r.id.textdata); Toast.makeText(this,"Received: "+textfield.gettext(),toast.length_short).show(); } By the way, if you didn't notice, I didn't actually use a Button there. You can set onclick events for other Views as well. And now we resume... What happens if we rotate the screen?... oh no... ohhh no... We have to fix that! The problem here is that we have a portrait-friendly landscape, but nothing to guarantee that it's only displayed in portrait! There are two basic solutions for this: Only allow portrait mode, if that makes sense for the task Provide an alternate layout for when displaying in landscape We'll be going with the latter. If you switch to the Design view, one of the buttons has a Create Landscape Variation button (as well as a couple other variations). Try using it, and then let's briefly leave Android Studio to inspect the folder structure of the project. Ain't that neat?!? Anyhoo, let's redesign the layout for being landscape-friendly. While we're at it, there's also another problem to address: manually stating the sizes of Views is a terrible way to make them 'fill up the screen' better. So we'll address both issues. (Sorry for the blank space, but I want to start this on another page)
9 Our landscape version <?xml version="1.0" encoding="utf 8"?> <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="10dip" android:paddingright="10dip" android:paddingtop="10dip" android:paddingbottom="10dip" tools:context=".linearity" android:background="#a0a0ff" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="2" android:orientation="horizontal" android:padding="10dip"> android:layout_width="0dip" android:layout_height="match_parent" android:background="#00ff00" android:layout_weight="1" android:text="first!" android:layout_width="0dip" android:layout_height="match_parent" android:background="#00ff00" android:layout_weight="1" android:text="second!" android:layout_width="0dip" android:layout_height="match_parent" android:background="#00ff00" android:layout_weight="1" android:text="third!" </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1" android:orientation="horizontal" android:padding="10dip"> android:layout_width="0dip" android:layout_height="match_parent"
10 android:layout_weight="1" android:text="fourth!" <EditText android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" android:layout_margin="20dip" android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="1" android:text="next!" android:onclick="donelinear" </LinearLayout> </LinearLayout> Uh, wow. That's a lot, eh? Let's see what's new: First, we can easily have a Layout within a Layout, which is how we'll be handling pretty much any layout of reasonable complexity Some Linear Layouts are vertical; others horizontal The layout_weight is how it performs relative spacing between different elements within the same LinearLayout. If they're all the same number, they all get equal portions; otherwise, it's done according to the stated ratios (however, the actual values themselves don't really matter; just the relative ratios) A layout weight only works in a single dimension:e.g. if it's a horizontal linear layout, then the weights indicate width (conversely, for vertical, they determine per-element height) When you're using a weight, you should set the corresponding layout_width/layout_height to 0dip, since it would be overridden anyway We also used a bit of margins and padding, even though doing it this way is poor form Well, that was certainly interesting! Next, let's just go ahead and click that button again to... oh consarnit... What went wrong? Anybody care to venture a guess?
11 What went wrong Hopefully you gave it some thought, rather than jumping to the answer. The problem is that the EditText in the landscape version is missing its id. Of course, if you made all of the changes manually, rather than copying&pasting the example from above, you might not have had the problem arise anyway. This is something to watch for: when we specify more than one file, we run the risk of them not matching each other. In any event, just add to the EditText (to match the portrait version), and we're good to go on the next part. Sending information from one Activity to the next That Toast was just a placeholder, so now let's replace it with code to start the next Activity. The new Activity will be called Griddle in my version. Beyond simply starting it, we want to add some additional data. Thankfully, this is mostly just a combination of what we've learned this week, and last. My new version of the onclick code was: public void donelinear(view b) { String textdata=((edittext)findviewbyid(r.id.textdata)).gettext().tostring(); Intent gridintent=new Intent(this,Griddle.class); gridintent.putextra("textdata",textdata); startactivity(gridintent); } In our Griddle Activity, we'll have something like: String received=getintent().getstringextra("textdata"); Toast.makeText(this,received.equals("")? "Nothing there":received,toast.length_short).show(); GridLayout The GridLayout layout is an interesting one. Up to, and including, API 20, it was of limited use. The idea is to arrange elements in (huge surprise) a grid. Basically, each position is now indexable. Lollipop introduced a useful feature for it: the weights from the LinearLayout. However, if you're going to support API versions before Android 5.0, realize that it may render entirely differently from how it does on your screen. In any event, as mentioned above, we'll be making our new Activity: Griddle.
12 Naïve version In theory, we could just go with this: <?xml version="1.0" encoding="utf 8"?> <GridLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".griddle" android:rowcount="6" android:columncount="3" > android:text="first" android:text="second" android:text="third" android:text="fourth" android:text="fifth" android:text="sixth" android:text="seventh" </GridLayout> However, that looks terrible, and relatively pointless. Let's see what we can do with it! <?xml version="1.0" encoding="utf 8"?> <GridLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".griddle" android:rowcount="6" android:columncount="3" > android:text="first" android:layout_row="0" android:layout_column="0" android:layout_columnweight="1" android:background="#4040ff" android:layout_rowspan="2" android:layout_gravity="fill_vertical"
13 android:text="second" android:layout_row="5" android:layout_column="2" android:layout_columnweight="3" android:background="#4040ff" android:text="third" android:layout_row="0" android:layout_column="1" android:layout_columnweight="2" android:text="fourth" android:layout_row="1" android:layout_column="2" android:layout_columnweight="3" android:text="fifth" android:layout_columnweight="1" android:text="sixth" android:layout_row="4" android:layout_columnweight="2" android:text="seventh" android:layout_column="2" android:layout_columnweight="3" android:text="eighth" android:layout_columnweight="1" </GridLayout> A few things worth noting: If you don't specify the coordinates of a cell, it assumes it's just assigning them in sequence If you start setting row/column weights in a direction for one element, you'd best set them all Trying to set weights as well as layout_gravity (disposition relative to parent) fills tends to yield confusing results Final thought on orientation What if we don't want it to be able to rotate? One solution is to add android:screenorientation="portrait" in the manifest. We could also take direct control over the geometry-related callbacks, but... let's not.
14 Additional Layouts Of course, there are many more layouts. However, there's really only so many we can go through at once before it all starts becoming a blur. A few noteworthy ones: AbsoluteLayout this one is deprecated, and for good reason. Please don't use it TableLayout a tabular layout, we may come back to this later for forms FrameLayout a simple container, for when you just want to display one thing (though that single thing can change) This is all in addition to 'views' (not to be confused with Views. sigh).
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 informationMore 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 informationAndroid UI: Overview
1 Android UI: Overview An Activity is the front end component and it can contain screens. Android screens are composed of components or screen containers and components within the containers Screen containers
More informationAdapting 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 informationSizing and Positioning
CS 193A Layout This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Sizing and Positioning How does the
More informationMobile Software Development for Android - I397
1 Mobile Software Development for Android - I397 IT COLLEGE, ANDRES KÄVER, 2015-2016 EMAIL: AKAVER@ITCOLLEGE.EE WEB: HTTP://ENOS.ITCOLLEGE.EE/~AKAVER/2015-2016/DISTANCE/ANDROID SKYPE: AKAVER Layout fundamentals
More informationANDROID 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 informationResources and Media and Dealies
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
More informationIn our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology.
Guide to and Hi everybody! In our first lecture on sets and set theory, we introduced a bunch of new symbols and terminology. This guide focuses on two of those symbols: and. These symbols represent concepts
More informationCS 4330/5390: Mobile Application Development Exam 1
1 Spring 2017 (Thursday, March 9) Name: CS 4330/5390: Mobile Application Development Exam 1 This test has 8 questions and pages numbered 1 through 7. Reminders This test is closed-notes and closed-book.
More informationLet s take a display of HTC Desire smartphone as an example. Screen size = 3.7 inches, resolution = 800x480 pixels.
Screens To begin with, here is some theory about screens. A screen has such physical properties as size and resolution. Screen size - a distance between two opposite corners of the screens, usually measured
More informationAzon 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 informationThe 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 informationFormal 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 informationHello 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 informationFormal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5
Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they
More informationInstructor: Craig Duckett. Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables
Instructor: Craig Duckett Lecture 03: Tuesday, April 3, 2018 SQL Sorting, Aggregates and Joining Tables 1 Assignment 1 is due LECTURE 5, Tuesday, April 10 th, 2018 in StudentTracker by MIDNIGHT MID-TERM
More informationOur First Android Application
Mobile Application Development Lecture 04 Imran Ihsan Our First Android Application Even though the HelloWorld program is trivial in introduces a wealth of new ideas the framework, activities, manifest,
More informationEMBEDDED 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 informationIt 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 informationUser 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 informationAndroid Basics. Android UI Architecture. Android UI 1
Android Basics Android UI Architecture Android UI 1 Android Design Constraints Limited resources like memory, processing, battery à Android stops your app when not in use Primarily touch interaction à
More informationManaging 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 informationPraktikum Entwicklung Mediensysteme. Implementing a User Interface
Praktikum Entwicklung Mediensysteme Implementing a User Interface Outline Introduction Programmatic vs. XML Layout Common Layout Objects Hooking into a Screen Element Listening for UI Notifications Applying
More informationAndroid Application Development
Android Application Development Octav Chipara What is Android A free, open source mobile platform A Linux-based, multiprocess, multithreaded OS Android is not a device or a product It s not even limited
More informationSlide 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 informationLinked 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 informationMITOCW 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 informationVersion Copyright Feel free to distribute this guide at no charge...
Version 2.0 Feel free to distribute this guide at no charge... You cannot edit or modify this guide in anyway. It must be left exactly the way it is. This guide is only accurate from the last time it was
More informationCOSC 3P97 Assignment 1
Due: Oct. 12 @ 5:00 pm. COSC 3P97 Assignment 1 Fall 2018/19 Create a new Android Studio project or Eclipse workspace for the assignment. The app should run on API 23 (Marshmallow). Calculator Write an
More informationComparative Study on Layout and Drawable Resource Behavior in Android for Supporting Multi Screen
International Journal of Innovative Research in Computer Science & Technology (IJIRCST) ISSN: 2347-5552, Volume 2, Issue 3, May - 2014 Comparative Study on Layout and Drawable Resource Behavior in Android
More informationChapter 8 Positioning with Layouts
Introduction to Android Application Development, Android Essentials, Fifth Edition Chapter 8 Positioning with Layouts Chapter 8 Overview Create user interfaces in Android by defining resource files or
More informationProgramming with Android: Introduction. Layouts. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna
Programming with Android: Introduction Layouts Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna Views: outline Main difference between a Drawable and
More informationMITOCW 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 informationSouth Africa
South Africa 2013 Lecture 6: Layouts, Menus, Views http://aiti.mit.edu Create an Android Virtual Device Click the AVD Icon: Window -> AVD Manager -> New Name & start the virtual device (this may take a
More informationOverview. What are layouts Creating and using layouts Common layouts and examples Layout parameters Types of views Event listeners
Layouts and Views http://developer.android.com/guide/topics/ui/declaring-layout.html http://developer.android.com/reference/android/view/view.html Repo: https://github.com/karlmorris/viewsandlayouts Overview
More informationChapter 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 informationAgenda. 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 informationTopics of Discussion
Reference CPET 565 Mobile Computing Systems CPET/ITC 499 Mobile Computing Fragments, ActionBar and Menus Part 3 of 5 Android Programming Concepts, by Trish Cornez and Richard Cornez, pubslihed by Jones
More informationmismatch between what is maybe possible today and what is going on in many of today's IDEs.
What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to
More informationHow To Make 3-50 Times The Profits From Your Traffic
1 How To Make 3-50 Times The Profits From Your Traffic by Chris Munch of Munchweb.com Copyright Munchweb.com. All Right Reserved. This work cannot be copied, re-published, or re-distributed. No re-sell
More informationPROFESSOR: 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 informationMobile Computing Professor Pushpedra Singh Indraprasth Institute of Information Technology Delhi Andriod Development Lecture 09
Mobile Computing Professor Pushpedra Singh Indraprasth Institute of Information Technology Delhi Andriod Development Lecture 09 Hello, today we will create another application called a math quiz. This
More informationLaying Out Controls in Containers
CHAPTER 3 Laying Out Controls in Containers A container is a view used to contain other views. Android offers a collection of view classes that act as containers for views. These container classes are
More informationVienos veiklos būsena. Theory
Vienos veiklos būsena Theory While application is running, we create new Activities and close old ones, hide the application and open it again and so on, and Activity can process all these events. It is
More informationMITOCW watch?v=kz7jjltq9r4
MITOCW watch?v=kz7jjltq9r4 PROFESSOR: We're going to look at the most fundamental of all mathematical data types, namely sets, and let's begin with the definitions. So informally, a set is a collection
More informationMITOCW 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 informationAutomatic newsgroup TV show downloading By RootyB
Downloaded from: justpaste.it/1mx Automatic newsgroup TV show downloading By RootyB I'm doing this in between my actual responsibilities, so it's going to be fairly quick and dirty. It should address just
More informationIn today s video I'm going show you how you can set up your own online business using marketing and affiliate marketing.
Hey guys, Diggy here with a summary of part two of the four part free video series. If you haven't watched the first video yet, please do so (https://sixfigureinc.com/intro), before continuing with this
More informationIntroduction to Game Programming Lesson 4 Lecture Notes
Introduction to Game Programming Lesson 4 Lecture Notes Learning Objectives: Following this lecture, the student should be able to: Define frame rate List the factors that affect the amount of time a game
More informationPost 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 informationmk-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 informationThe following content is provided under a Creative Commons license. Your support
MITOCW Lecture 10 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 informationAndroid 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 informationAndroid 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 informationMicrosoft Access 2016 Intro to Forms and Reports
Microsoft Access 2016 Intro to Forms and Reports training@health.ufl.edu Access 2016: Intro to Forms and Reports 2.0 hours Topics include using the AutoForm/AutoReport tool, and the Form and Report Wizards.
More informationMITOCW watch?v=zm5mw5nkzjg
MITOCW watch?v=zm5mw5nkzjg 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 informationProgramming with Android: Introduction. Layouts. Luca Bedogni. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna
Programming with Android: Introduction Layouts Luca Bedogni Dipartimento di Informatica: Scienza e Ingegneria Uniersità di Bologna Views: outline Main difference between a Drawable and a View is reaction
More informationMITOCW watch?v=yarwp7tntl4
MITOCW watch?v=yarwp7tntl4 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.
More informationGUI 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 informationWhat's the Slope of a Line?
What's the Slope of a Line? These lines look pretty different, don't they? Lines are used to keep track of lots of info -- like how much money a company makes. Just off the top of your head, which of the
More informationPROFESSOR: Well, yesterday we learned a bit about symbolic manipulation, and we wrote a rather stylized
MITOCW Lecture 4A PROFESSOR: Well, yesterday we learned a bit about symbolic manipulation, and we wrote a rather stylized program to implement a pile of calculus rule from the calculus book. Here on the
More informationProgramming in Android. Nick Bopp
Programming in Android Nick Bopp nbopp@usc.edu Types of Classes Activity This is the main Android class that you will be using. These are actively displayed on the screen and allow for user interaction.
More informationMITOCW watch?v=w_-sx4vr53m
MITOCW watch?v=w_-sx4vr53m 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 informationUser Interface Development in Android Applications
ITU- FAO- DOA- TRCSL Training on Innovation & Application Development for E- Agriculture User Interface Development in Android Applications 11 th - 15 th December 2017 Peradeniya, Sri Lanka Shahryar Khan
More informationMITOCW MIT6_172_F10_lec18_300k-mp4
MITOCW MIT6_172_F10_lec18_300k-mp4 The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for
More informationMobile 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 informationMITOCW 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 informationLesson 3 Transcript: Part 1 of 2 - Tools & Scripting
Lesson 3 Transcript: Part 1 of 2 - Tools & Scripting Slide 1: Cover Welcome to lesson 3 of the db2 on Campus lecture series. Today we're going to talk about tools and scripting, and this is part 1 of 2
More informationThe 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 informationmid=81#15143
Posted by joehillen - 06 Aug 2012 22:10 I'm having a terrible time trying to find the Lightworks source code. I was under the impression that Lightworks was open source. Usually that means that it's possible
More informationBlog post on updates yesterday and today:
Beta Bug Prioritization meeting IRC Transcript 12 November 2013 Meeting was held in IRC, on the #devmo channel. Meetings are weekly, every Tuesday at 17:00 UTC (10am PST) ok, everyone, we're ready to start
More informationGrocery 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 informationSmart formatting for better compatibility between OpenOffice.org and Microsoft Office
Smart formatting for better compatibility between OpenOffice.org and Microsoft Office I'm going to talk about the backbreaking labor of helping someone move and a seemingly unrelated topic, OpenOffice.org
More informationInstructor: Craig Duckett. Lecture 04: Thursday, April 5, Relationships
Instructor: Craig Duckett Lecture 04: Thursday, April 5, 2018 Relationships 1 Assignment 1 is due NEXT LECTURE 5, Tuesday, April 10 th in StudentTracker by MIDNIGHT MID-TERM EXAM is LECTURE 10, Tuesday,
More informationArrays of Buttons. Inside Android
Arrays of Buttons Inside Android The Complete Code Listing. Be careful about cutting and pasting.
More informationThe following content is provided under a Creative Commons license. Your support
MITOCW Lecture 8 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 donation
More informationCustomizing Access Parameter Queries
[Revised and Updated 15 August 2018] Everyone likes parameter queries! The database developer doesn't have to anticipate the user's every requirement, and the user can vary their enquiries without having
More informationMITOCW 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 informationJava 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 informationMITOCW 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 informationUpon completion of the second part of the lab the students will have:
ETSN05, Fall 2017, Version 2.0 Software Development of Large Systems Lab 2 1. INTRODUCTION The goal of lab 2 is to introduce students to the basics of Android development and help them to create a starting
More informationMITOCW watch?v=zlohv4xq_ti
MITOCW watch?v=zlohv4xq_ti 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 informationXP: Backup Your Important Files for Safety
XP: Backup Your Important Files for Safety X 380 / 1 Protect Your Personal Files Against Accidental Loss with XP s Backup Wizard Your computer contains a great many important files, but when it comes to
More informationSkill 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 informationPROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that
MITOCW Lecture 4B [MUSIC-- "JESU, JOY OF MAN'S DESIRING" BY JOHANN SEBASTIAN BACH] PROFESSOR: So far in this course we've been talking a lot about data abstraction. And remember the idea is that we build
More informationLab 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 informationAutodesk University Step Up Your Game AutoCAD P&ID and SQL: Making Data Work for You Skill Level: All Levels
Autodesk University Step Up Your Game AutoCAD P&ID and SQL: Making Data Work for You Skill Level: All Levels JULIAN CHAVEZ: Good afternoon, ladies and gentlemen. Last class of the last day and everybody's
More informationI'm Andy Glover and this is the Java Technical Series of. the developerworks podcasts. My guest is Brian Jakovich. He is the
I'm Andy Glover and this is the Java Technical Series of the developerworks podcasts. My guest is Brian Jakovich. He is the director of Elastic Operations for Stelligent. He and I are going to talk about
More informationTourMaker 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 informationUsing 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============================================================================
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 informationMITOCW watch?v=4dj1oguwtem
MITOCW watch?v=4dj1oguwtem PROFESSOR: So it's time to examine uncountable sets. And that's what we're going to do in this segment. So Cantor's question was, are all sets the same size? And he gives a definitive
More informationInstructor (Mehran Sahami):
Programming Methodology-Lecture26 Instructor (Mehran Sahami): All right. Welcome back to what kind of day is it going to be in 106a? Anyone want to fun-filled and exciting. It always is. Thanks for playing
More informationMITOCW watch?v=se4p7ivcune
MITOCW watch?v=se4p7ivcune 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 informationAndroid 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 informationHow to Improve Your Campaign Conversion Rates
How to Improve Your Email Campaign Conversion Rates Chris Williams Author of 7 Figure Business Models How to Exponentially Increase Conversion Rates I'm going to teach you my system for optimizing an email
More informationCS144 Final Review. Dec 4th, 2009 Tom Wiltzius
CS144 Final Review Dec 4th, 2009 Tom Wiltzius Topics Topics In narrative format! Let's follow Packy as he traverses the Internet! Packy comes into being to help Compy the Computer load a web page Compy
More informationDreamweaver Website 1: Managing a Website with Dreamweaver
Page 1 of 20 Web Design: Dreamweaver Websites Managing Websites with Dreamweaver Course Description: In this course, you will learn how to create and manage a website using Dreamweaver Templates and Library
More informationNaming Things in Adafruit IO
Naming Things in Adafruit IO Created by Adam Bachman Last updated on 2016-07-27 09:29:53 PM UTC Guide Contents Guide Contents Introduction The Two Feed Identifiers Name Key Aside: Naming things in MQTT
More information