2013-02-23 08:24:43 -05:00
|
|
|
Images, layout descriptions, binary blobs and string dictionaries can be included
|
|
|
|
in your application as resource files. Various Android APIs are designed to
|
|
|
|
operate on the resource IDs instead of dealing with images, strings or binary blobs
|
|
|
|
directly.
|
|
|
|
|
|
|
|
For example, a sample Android app that contains a user interface layout (main.axml),
|
|
|
|
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
|
|
|
|
would keep its resources in the "Resources" directory of the application:
|
|
|
|
|
|
|
|
Resources/
|
|
|
|
drawable/
|
|
|
|
icon.png
|
|
|
|
|
|
|
|
layout/
|
|
|
|
main.axml
|
|
|
|
|
|
|
|
values/
|
|
|
|
strings.xml
|
|
|
|
|
|
|
|
In order to get the build system to recognize Android resources, set the build action to
|
|
|
|
"AndroidResource". The native Android APIs do not operate directly with filenames, but
|
|
|
|
instead operate on resource IDs. When you compile an Android application that uses resources,
|
|
|
|
the build system will package the resources for distribution and generate a class called "R"
|
|
|
|
(this is an Android convention) that contains the tokens for each one of the resources
|
|
|
|
included. For example, for the above Resources layout, this is what the R class would expose:
|
|
|
|
|
|
|
|
public class R {
|
|
|
|
public class drawable {
|
|
|
|
public const int icon = 0x123;
|
|
|
|
}
|
|
|
|
|
|
|
|
public class layout {
|
|
|
|
public const int main = 0x456;
|
|
|
|
}
|
|
|
|
|
|
|
|
public class strings {
|
|
|
|
public const int first_string = 0xabc;
|
|
|
|
public const int second_string = 0xbcd;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
|
2013-02-23 11:43:42 -05:00
|
|
|
to reference the layout/main.axml file, or R.Strings.first_string to reference the first
|
2013-02-23 08:24:43 -05:00
|
|
|
string in the dictionary file values/strings.xml.
|