Welcome to Delicate template
Header
Just another WordPress site
Header

This is a summay of the tricks I have learned making an application called courseApp project.  This application was developed in the Mobile Information Systems that I took at University of Oslo. Eclipse is a very good tool to use for Android development. To start with you need to download Andriod SDK. After installing both of these(and ofcourse Java Development Kit, JDK which is a pre-requirement for both of these), you need to make Eclipse and Android SDK talk together. This is done by a plugin called “ADT plugin for Eclipse” from Google. You can read more about how to install this plugin by clicking hereIn case of Android SDK installation(the exe file) doesn’t recognize JDK on your computer, you can simply download the zip file and extract it. Don’t forget appending that folder to the %PATH% environment variable. Now some more tips follows :

background color for your layout :
add the following code to your layout XML code(#ff32cf is the color code)

android:background="#ff23cf"

Background Image for your layout :
1- Add the image you want to the layout folder of your project.
2- Add the following code to your layout XML code

android:background="@drawable/bbg"

EditText features :
one of the features I want to talk about is android:singleLine which is very useful. If you want to get some info from the user, this text box is a good tool to use, but make sure you set the SingleLine variable to true. If not if they paste a 20 lines of text by mistake your whole GUI gets out of shape. Also if you want to use this for example to write an email text, then this should be set to false as you want it to contain several lines. The good thing about several lines EditText is that they do have scrolling function.

<EditText ... android:singleLine="true">//Single Line box for getting email address
</span><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: 12px; line-height: 18px; white-space: pre;"><EditText ... android:singleLine="false">//Multi Line box for getting email text

in case you want limit the number of lines of an EditText:

<span style="font-family: monospace; font-size: 12px; line-height: 18px; white-space: pre;"><EditText android:layout_width="fill_parent"</span>
<pre><code>            android:layout_height="wrap_content" android:gravity="center"
android:singleLine="false" android:lines="5"
android:layout_marginLeft="10dip" android:layout_marginRight="10dip"
/></code><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">

 

Simple Item List :
Setting up a simple Item list with an already filled Arrayadapter.


static final String[] COUNTRIES = new String[] {"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra","Angola", "..."}
<pre>setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, COUNTRIES));
getListView().setTextFilterEnabled(true);</pre>

Drop Down List :
In Android drop down list is a little bit complicated to give value to. You first need to add one Spinner to your layout and then connect it to

 String[] Countries = { "India", "France", "Japan", "China", "U.S" };

// //////////////////Countries Spinner/////////////////////////////////
SpinnerCountries = (Spinner) findViewById(R.id.Spinner01);

// //////////////////////////////////////////////////////////////
// create an arrayAdapter an assign it to the spinner
AdapterCountries = new ArrayAdapter<CharSequence>(this,
android.R.layout.simple_spinner_item);
AdapterCountries
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SpinnerCountries.setAdapter(AdapterCountries);

int lenCountries = Countries.length;

for (int i = 0; i < lenCountries; i++) {
// test += Areas[i] + "\n";
AdapterCountries.add(Countries[i]);
}

source

Disabling the Landscape Mode :
You have two ways to do this, either in the code, or in the XML layout file :

XML :

</span><span style="font-family: monospace; font-size: 12px; line-height: 18px; white-space: pre;"><activity android:name=".SomeActivity"</span>
<pre>
<pre><code>              android:label="@string/app_name"
android:screenOrientation="portrait"></code>

OR in the code :

[/java]

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);     //  Fixed Portrait orientation[/java]

Layouts in Android :
LinearLayout :
LinearLayout aligns all children in a single direction — vertically or horizontally, depending on how you define the orientation attribute. All children are stacked one after the other, so a vertical list will only have one child per row, no matter how wide they are, and a horizontal list will only be one row high (the height of the tallest child, plus padding). A LinearLayout respects margins between children and the gravity (right, center, or left alignment) of each child.

TableLayout :
TableLayout positions its children into rows and columns. TableLayout containers do not display border lines for their rows, columns, or cells. The table will have as many columns as the row with the most cells. A table can leave cells empty, but cells cannot span columns, as they can in HTML.

RelativeLayout
RelativeLayout lets child views specify their position relative to the parent view or to each other (specified by ID). So you can align two elements by right border, or make one below another, centered in the screen, centered left, and so on. Elements are rendered in the order given, so if the first element is centered in the screen, other elements aligning themselves to that element will be aligned relative to screen center. Also, because of this ordering, if using XML to specify this layout, the element that you will reference (in order to position other view objects) must be listed in the XML file before you refer to it from the other views via its reference ID.

As the programming phase is almost finished, we have entered the design phase. We are working on our 3D design and plan to buy tracking belts and sprocket wheels. At the same time we are discussing the sponsorship of the project with RobotShop.com & hope we receive a positive answer from them. You can read full reports on our activities & have full access to our codes and designs on Super Crawler worklog at Robotica Osloensis forum or the project weblog.

Bilde

New Ideas on Robot feet …

March 20th, 2010 | Posted by Shahab in My Projects | My Studies | Shahab | UiO - (0 Comments)

I got some new wild ideas about how actually the hardware part of the climbing robot should look like. Well these are nothing that would come to real world but just some drawing form me in my free time …

(more…)

Master student @ UiO

January 25th, 2010 | Posted by Shahab in My Projects | My Studies | Shahab | UiO - (0 Comments)

I am admitted as a master student at university of Oslo. I can choose between many different fields, but I guess I am going to stick to Robotics. I think I’ll be writing my thesis in algorithm optimalization of intelligent systems.

Wish me lots of LUCK.

Compiler for a simplified C

November 21st, 2009 | Posted by Shahab in Shahab - (0 Comments)

My friend (Jim) and I are finally finished with coding for a compiler in Java. The compiler is implemented in Java to run the code written in a language called Rusc wich is a kind of simplified C. The language contains integer, variables, functions, IF, Else, While, for, expressions, names, libraries of pre-coded functions. We finished testing and running the code. This code was written for a course at university of Oslo, IFI, called INF2100-Programming project. The code is available here.

Tank Type Design, Robot report #4

August 16th, 2009 | Posted by Shahab in My Projects | Shahab - (0 Comments)

Tank style Assembled robot

Tank style Assembled robot

Robotic Project Report #3

August 16th, 2009 | Posted by Shahab in My Projects | Shahab - (1 Comments)

Tank Type Design

Tank type design

Top Cover Sample

Top Cover

Robot Project Report, report #2

July 27th, 2009 | Posted by Shahab in My Projects | Shahab | UiO - (0 Comments)

This is the newest design of the robot chassis getting more and more closer to reallity … Now we have places for Motor#1 & #2, sprock wheels, Microcontroller and laptop inside the robot for Image Processing. The 3D design was designed at SolidWorks 2008 and will be printed by a 3D printed with a mixture of plastics material.

Robotic project, shahab

The Image processing part of the Robotic project, in hardware point of view contains a camera and laptop. The laptop is placed inside the robot chassis for Image Processing applications to run on it. The camera is going to be place on an arm which is not exactly decided how it is going to be and how much would we reach to make. But for sure there is going to be an arm, probably with one prismatic and two revolute joint(we are probably going to remove one revolute joint as the robot is able to turn around itself 360 degrees). This will give the camera a very good workspace which would be alittle less than a sphere on bottom and top.

As this project is a summer project and we do not have much time left, we have decided to go for easiest solutions for time being. Everything that makes the project to take one more step toward the goal is acceptable. Now I am trying to find ways how we can broadcast the stream of video we get from Robot’s cameras online. Our choices up to now are as followed :

  1. USTREAM.COM website which let you to stream live videos and people are able to watch it online in flash format. It’s not the best choice to make, but it is a possible choice.
  2. RealPlayer

Robotic Project Report #1

July 14th, 2009 | Posted by Shahab in My Projects | My Studies | Shahab | UiO - (0 Comments)

Well as said before, we are 4 students working on this Robotic project and things have been much more clear than the imaginary robot I was talking about last time. Now we know what kind of micro controller are we going to use, although still we have troubles setting it up(Vegard). We have designed the basic circuit for controlling the robots movement as well, but not tested yet(Kjetil). Also we are working on the body. My friend Magnus is designing the belt and the wheels ! Yep it’s gonno drive around with the help of 2 belts and 8 wheels. My responsibility is to design the chassis up to now. Here is a very basic version of it that I am just playing around to learn more how to work with Solidworks. When we are finished we are going to print this out with the help of a 3D printer that the robotic group has(in a quite nice resistible plastic material). Image processing part has not even started yet !!!

chasisBasic Chassis with 4 holes on each sides for placing the wheels.

Haha, before I forget, Vegard wants to name robot, Superman :-D Dunno if she is gonno be named that, but that’s what he is saying around ;-)