As I mentioned that next step is adding animations. It’s a bit daunting to me to be honest. To start I skipped the video and downloaded the files Tree House provided. They were 22 Crystal Ball images where they ball basically lit up all mystical like and then faded back to the original. Once I saw that I thought about what I wanted Yoda to do. Speak the answer, obviously. I fired up Episode I and found a scene of Yoda talking. It was harder than I expected to find one of him close up and straight on, but I found one from the Council Chambers that should work well. That, as it turns out, was the easy part. Next I had to compile a number of screen shots from the film. Not too hard using VLC. Then cropping them all since I didn’t want the entire frame. THIS was difficult. I found a plugin for GIMP that allows batch editing of images so you can do the same thing to multiple images. Perfect! Except it only allows some basic fuctions, which while cool and time saving, still left me with a lot of work to do to get my 52 images ready to animate. I used the plugin to crop them all to the same size. Then I went through each one individually and applied an elliptical cutout around Yoda using the same X, Y coordinates so that he wouldn’t bounce around while animating. If anyone knows of an easier way to do things like this please let me know!
One of the Fifty-Two Yoda images I edited to make him Talk
Once I got those all the way I thought I wanted them, I finally fired up the next video to learn what to do with them. The files they included for download for the Crystal Ball animation included an XML file that I recreated for my yoda animation. I did that and followed the instructions for actually coding in the animation, and was greeted with the following:
My App has Stopped
That is pretty much where I am right now. I’m currently going over what little debugging I know to try and find the cause.
I’ve started using teamtreehouse.com since reading about it for the first time yesterday. I’m not sure how far I’ll be able to go with it because it is actually a paid program (service?) and I don’t have spare funds at the moment. I was however able to score a free first month through a promotion I found, so I’ll try to make the most of it. It is way more interactive than simply watching videos. It includes quizzes, and coding challenges that let you know if you got it right as well as the usual follow along videos I have come to know from mybringback and other sources.
Mike the frog, Team Tree House’s mascot
I started at the beginning of the Learn Android Adventure and am just working my way through it. I have learned a few new things. They recommend always using scale-independent pixels (sp) which I think I agree with. They will scale based on the size of the screen as well as the user’s font setting for the device. If I understand correctly using density pixel would stay the same size no matter what the user had the device’s font to set to. This would potentially cause your app to be unusable by someone with poor eyesight who had the font set to large so they could read it. That would be bad.
I’m also learning about arrays! Arrays can be used to store a number of different values from one data type. You tell the computer that it is an array by using square brackets after the data type (String) and then open curly braces to start your list of values. That was a terrible description so I’ll just include a picture of my code for the app tree house has me making. Actually, I’m altering the app a little. They are making a Crystal Ball app, and I’m not into that, at all. So I am making an Ask Yoda app.
My First Array in Java/Android
I was excited to cover if statements because mybringback hadn’t touched on them yet and I remembered them being such a big part of the course I took on Python. It seems like they will be a fairly big part of Android dev as well, and I imagine of any type of programming. Before we made our array as seen above we simply had 3 possible answers: Yes, No and Maybe. We had a random number generator (Which is also new for me in Android) that could give us 0, 1 or 2 when we ran it. We used this with an if statement to assign 0 to Yes, 1 to No and 2 to Maybe. This worked great and was a simple way to introduce if statements. When we added are array we pulled that if statement out. I have added a new one to my code though that changes the background color dependent on whether the answer was positive, negative or neutral.
If Statement to change the Background text
I’ll stop there for now. I’m really liking Team Tree House. I really think I’d like to continue using it after this first free month runs out. I’m going to see if I can work it into my budget somehow. That said, if you are interested in learning anything in their library please consider using my referral link. It will get you 50% off your first month and I’ll get $5 off my next month.
Some of the things you can learn
Hello and welcome to the next ‘chapter’ in my Quest to become a code monkey. When we last left our hero he was slightly disenfranchised with his grand journey. He was not learning much and needed to find something new.
I mentioned Hello, Android
and that is what I have been focusing on. I think I’m falling into a nice rhythym with it. I’m not going quickly but what I do is read through a section (usually on coffee breaks at work) and then later go back and follow along while doing the actual coding. I think it’s working pretty good and is even making more sense. There are still parts where I stratch my head and wonder why that code was written and exactly what it means. But I think with more practice and use it will start to become more clear.
The Launch Page of the App Hello, Android is teaching me to build
So far I’ve been learning about UI set up. With that I have set up a launch page UI including title text and four buttons as seen above. I feel pretty solid about that code and how it works. When we start linking the buttons to actions I get a little bit lost. onClickListener is what checks to see if the button is hit or not, but I need to go back and at the surrounding code to get a better handle on it. We also learnt about setting up the UI for different screen orientations so that everything looks nice regardless of whether the user is in landscape or portrait mode. This allowed us to set up our first table view so we get the nice columns in landscape mode. I also set up an About page which is triggered by hitting a button. This page is styled with a Theme so that it appears as a pop up with the original activity visible behind it. That was pretty cool.
The About Page themed as a Pop Up box
Finally we started setting up the settings options. I’m pretty sure this is just magic. I didn’t really set much up and yet, there’s the page. I guess we haven’t set up the results for it yet. We don’t have music to turn on and off and we don’t have hints yet, so maybe when those features get implemented we’ll see how they link up.
The Settings Page
It’s been fun doing this coding and seeing the results on the emulator. I wish I had made coding more of a priority this week. It would have been great to have the basic game play coded so that while my mother is visiting this weekend she could check it out since she used to play a lot of sudoku. Oh well. Can’t win them all.
The most exciting part of my recent lessons
This will be a pretty quick update. I’ve been following through the Lesson’s on Google’s Android Dev site and while the first lesson on Building Your First Application was great and really helped, I am starting to become disappointed in the lessons. I’ve done a few more lessons covering subjects like Activity Lifecycle, Supporting Different Devices (and Lauguages) and Building a UI with Fragments. It seems like beyond that first lesson where we built an app the lessons have become more theory and less practical. This shift has made it harder for me to follow along and get anything out of the lessons. Without actually having something to code it has become harder for me to get a feel for what is truly being taught. I understood the part on Languages just fine and think that the different values folders is a great way to handle it. Easy to package and add new languages after the fact. Different device sizes is handles in a similar way, but since it dealt with different layout files and didn’t walk through how to create them the lesson was lost on me a little bit. I am hoping that I’m still getting a bit of understanding from them, and that later on I will find myself using this information. It is neat that they come with sample applications you can download, but I would much rather they walk us through CREATING those apps so we can see how it works. At this point I think it will soon be time to find a new learning resource. I’ve been reading through a book called Hello Android and I think it might be my next main focus. The introduction mentioned creating a Suduko App and then as you learn new things you keep adding to the app. That sounds interesting and like a better way for me personally to learn. I have no doubt that in the future I will be returning to the Google dev site to look things up and learn about specific things as they come up, but for now, I need something holding my hand as I go and that keeps me coding. I guess I’m a learn by doing type of person, not a learn by reading.
On a different note I have used dropbox to import the application I made and mentioned in my last post to both my Tablet and Phone in AIDE. I was able to successfully compile the project and run it on both devices so that is good news. It means I should be able to create apps in Eclipse on my PC and then work on them while I’m on the go. I think this will be important when I get to the stage to be able to work on my own projects as I can utilise breaks at work and whatnot to do it.
One last thing: I’m really happy to see my blog getting as many hits as it has been. Thanks to all who have been visiting and commenting. especially to those that have answered a few of my questions. Please keep coming around and if there is anything specific you want me to write more about just let me know.