Android Chapter16 Resources
Android Chapter16 Resources
Android Chapter16 Resources
16
Android
Android
External Resources
Victor Matos
Cleveland State University
Notes are based on:
The Busy Coder's Guide to Android Development
by Mark L. Murphy
Copyright © 2008‐2009 CommonsWare, LLC.
ISBN: 978‐0‐9816780‐0‐9
&
Android Developers
http://developer.android.com/index.html
16. Android – Resources
Android Resources
Resources and Internationalization
Resources are external files (that is, non‐code files) that are used by your code
and compiled into your application at build time.
Android supports a number of different kinds of resource files, including XML,
PNG, and JPEG files.
Resources are externalized from source code, and XML files are compiled into a
binary fast loading format for efficiency reasons Strings likewise are
binary, fast loading format for efficiency reasons. Strings, likewise, are
compressed into a more efficient storage form.
http://developer.android.com/guide/topics/resources/resources‐i18n.html
1
10/11/2009
16. Android – Resources
Android Resources
Using Resources
The Android resource system keeps track of all non‐code assets associated with
y p
an application.
You use the Resources class to access your application's resources; the
Resources instance associated with your application can generally be found
through Context.getResources().
To use a resource, you must install it correctly in the source tree and build your
application
application.
16. Android – Resources
Android Resources
Copy/Paste Resources
You will create and store your
y
resource files under the appropriate
subdirectory under the res/ directory
in your project.
Resources are compiled into the final
APK file.
Android creates a wrapper class,
Android creates a wrapper class
called R, that you can use to refer to
these resources in your code. R
contains subclasses named according
to the path and file name of the
source file
4
2
10/11/2009
16. Android – Resources
Android Resources
Directory Resource Types
res/anim/ XML files that are compiled into frame by frame animation or tweened animation objects
res/drawable/ .png, .9.png, .jpg files. To get a resource of this type, use
mContext.getResources().getDrawable(R.drawable.imageId)
res/layout/ XML files that are compiled into screen layouts (or part of a screen).
res/values/ XML files that can be compiled into many kinds of resource.
res/xml/ Arbitrary XML files that are compiled and can be read at run time by calling Resources.getXML().
res/raw/ Arbitrary files to copy directly to the device. They are added uncompiled to the compressed file that your
application build produces. To use these resources in your application, call Resources.openRawResource()
with the resource ID, which is R.raw.somefilename
5
16. Android – Resources
Android Resources
A Typical Android Application consists of
Java code and additional resources merged
together into a deployable .apk file
3
10/11/2009
16. Android – Resources
Resources
Examples.
To see a number of samples you
To see a number of samples you
should explore the folder:
c:\Android\platforms\android‐1.5\data\res\
16. Android – Resources
Resources
More Examples.
Try to install the ApiDemos
Try to install the ApiDemos
application. Explore its resource
folder. Find the source code in the
folder:
c:\Android\platforms\android‐1.6\samples\
How to install the App:
File ‐> New ‐> Project ‐> Android Project ‐> Next
Select "Create project form existing source"
Select the ApiDemos folder (all remaining fields will
be self adjusted)
4
10/11/2009
16. Android – Resources
Android Resources
Java Statements for Using Resources
Displaying a screen layout:
setContentView(R.layout.main);
setContentView(R.layout.screen2);
16. Android – Resources
Android Resources
Java Statements for Using Resources
Retrieving String Resources from: res/values/…
/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hola Mundo!, ResourceDemo1!</string>
<string name="app_name">ResourceDemo1</string>
<string name="good_bye">Hasta luego</string>
<string name="color_caption">Color:</string>
<string name="color_prompt">Seleccione un Color</string>
<string name="planet_caption">
<b>Planeta </b>Planeta <i>Planeta </i><u>Planeta:
</u></string>
< t i
<string name="planet_prompt">Seleccione
" l t t">S l i un Planeta</string>
Pl t </ t i >
</resources>
String msg =
this.getString(R.string.color_prompt);
10
5
10/11/2009
16. Android – Resources
Android Resources
Java Statements for Using Resources
Enhancing externalized String resources from: res/values/…
//res/values/strings.xml
/ / g
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hola Mundo!, ResourceDemo1!</string>
<string name="app_name">ResourceDemo1</string>
<string name="good_bye">Hasta luego</string>
<string name="color_caption">Color:</string>
<string name="color_prompt">Seleccione un Color</string>
<string name="planet_caption">
<b>Planeta </b>Planeta <i>Planeta </i><u>Planeta: </u></string>
<string name="planet_prompt">Seleccione un Planeta</string>
</resources>
As in HTML a string using <b>, <i>, <u> modifiers will be rendered in: bold, italics,
and, underlined modes. In our example:
11
16. Android – Resources
Android Resources
Java Statements for Using Resources
Retrieving Array Resources from: res/values/…
/res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<string-array name="planets">
<resources> <item>Mercury</item>
<item>Venus</item>
<string-array name="colors"> <item>Earth</item>
<item>red</item> <item>Mars</item>
<item>orange</item> <item>Jupiter</item>
<item>yellow</item> <item>Saturn</item>
<item>green</item> <item>Uranus</item>
<item>blue</item> <item>Neptune</item>
<item>violet</item> <item>Pluto</item>
</string-array> </string-array>
</resources>
String myColors[] =
this.getResources().getStringArray(R.array.colors);
12
6
10/11/2009
16. Android – Resources
Android Resources
Java Statements for Using Resources
Retrieving a drawable image from: res/drawable/…
/res/drawable/
imageView1.setImageResource(
R.drawable.android_green_3d);
13
16. Android – Resources
Android Resources
Example1. Using Embedded Resources (drawable, string, array).
<?xml version
version="1.0"
1.0 encoding
encoding="utf-8"?>
utf 8 ?>
<LinearLayout <TextView
xmlns:android="http://schemas.android.com/apk/res/an android:layout_width="fill_parent"
droid" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_marginTop="10dip"
android:padding="10dip" android:textSize="18px"
android:layout_width="fill_parent" android:text="@string/planet_caption"
android:layout_height="fill_parent" />
android:background="@color/solid_blue"
> <Spinner android:id="@+id/spinner2"
android:layout_width="fill_parent"
<ImageView android:layout_height="wrap_content"
android:id="@+id/ImageView01" android:drawSelectorOnTop="true"
android:layout_width="wrap_content" android:prompt="@string/planet_prompt"
android:layout_height="wrap_content" />
>
</ImageView> </LinearLayout>
<EditText
<?xml version="1.0" encoding="utf-8"?>
android:id="@+id/txtColorBox"
<resources>
android:layout_width="fill_parent"
<drawable name="red">#7f00</drawable>
android:layout_height="wrap_content"
<drawable name="blue">#770000ff</drawable>
/>
<drawable name="green">#7700ff00</drawable>
<color name="solid_red">#f00</color>
<color name="solid_blue">#0000ff</color>
<color name="solid_green">#f0f0</color>
/res/values/color.xml <color name="solid_yellow">#ffffff00</color>
</resources>
14
7
10/11/2009
16. Android – Resources
Android Resources
Example1. Using Embedded Resources (drawable, string, array).
15
16. Android – Resources
Android Resources
Example1. Using Embedded Resources (drawable, string, array).
// using Resources (adapted from Android - ApiDemos)
package cis493.resources;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//TRY: setContentView(R.layout.screen2);
16
8
10/11/2009
16. Android – Resources
Android Resources
Example1. Using Embedded Resources (drawable, string, array).
EditText txtColorBox = (EditText)findViewById(R.id.txtColorBox);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter);
}
} 17
16. Android – Resources
Android Resources
mmmm
18
9
10/11/2009
16. Android – Resources
Android Resources
mmmm
19
16. Android – Resources
Android Resources
mmmm
20
10
10/11/2009
21
16. Android – Resources
Resources
Questions ?
22
11