Ofline
Создаем новый проект и получаем дерево папок и пару файлов
<blockquote>\ + AndroidManifest.xml \gen\ua\kiev\mabp + R.java \res\layout + main.xml \res\drawable + icon.png \res\values + strings.xml \src\ua\kiev\mabp + MyActivity.java</blockquote>
Поехали по порядку
AndroidManifest.xml — дескриптор развертывания, тоже самое что web.xml для J2 Enterprise Edition , для тех кто не в курсе андроид использует J2 Micro Edition (upd уже давно нет)
Структура фала
package=»ua.kiev.mabp» — пакет приложения
android:label=»tests» — название приложения
android:name=»MyActivity» — запускаймая активность (может быть несколько)
android:label=»PBank» — заголовок активности
android:name=»android.intent.action.MAIN» — главная активность приложения
android:name=»android.intent.category.LAUNCHER» — может запускатся из менюшки
android:name=»android.permission.INTERNET» — приложение может выходить в интернет (есть разные разрешения например на получение SMS или доступ к SD)
R.java Генерируемый файл, руками его править бесполезно потому что он перезаписывается при каждой компиляции Файл содержит класс R(esources) в котором хранятся ссылки на все ресурсы, более подробно чуть ниже
В папке res содержит ресурсы нескольких типов, все они при компиляции сохраняются в класс R, папка разделена на ресурсы разного типа
drawable — картинки
layout — слои
values — переменные
есть еще (доки)
Думаю про картинки объяснять не надо. единственно что доступ к ним происходит вот так — R.drawable.image_name_without_extention
main.xml Слои хранят в себе разметку страниц по умолчанию
Все начинается с определения LinearLayout
android😱rientation=»vertical» — вертикальное положение (как альбомная страница)
android:layout_width=»fill_parent» — заполняет весь экран в ширину
android:layout_height=»fill_parent» — заполняет весь экран в высоту
Основной экран содержит список ListView
android:id=»@id/android:list» — список доступен в ресурсах через ID R.id.list
android:layout_width=»fill_parent» — заполняет родительский объект по ширене
android:layout_height=»wrap_content» — имеет высоту содержимого
android:drawSelectorOnTop=»false» — первый элемент списка не подсвечен
еще пример row.xml
это ряд с списке
strings.xml Хранит в себе локализацию. если создать папку values-ru то из нее будет браться русская локаль
пример файла
Cтроки доступны через объект ресурсов R.string.first или через слои android:text=»@string/first». Чтобы преобразовать ресурс в локализированную строку делаем так context.getString(R.string.first)
переходим к приложению MyActivity.java
пример класса
В результате получаем приложение которое отображает все картинки которые по умолчанию есть в эмуляторе
<blockquote>\ + AndroidManifest.xml \gen\ua\kiev\mabp + R.java \res\layout + main.xml \res\drawable + icon.png \res\values + strings.xml \src\ua\kiev\mabp + MyActivity.java</blockquote>
Поехали по порядку
AndroidManifest.xml — дескриптор развертывания, тоже самое что web.xml для J2 Enterprise Edition , для тех кто не в курсе андроид использует J2 Micro Edition (upd уже давно нет)
Структура фала
Код:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ua.kiev.mabp">
<application android:icon="@drawable/icon" android:label="tests">
<activity android:name="MyActivity" android:label="PBank">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
android:label=»tests» — название приложения
android:name=»MyActivity» — запускаймая активность (может быть несколько)
android:label=»PBank» — заголовок активности
android:name=»android.intent.action.MAIN» — главная активность приложения
android:name=»android.intent.category.LAUNCHER» — может запускатся из менюшки
android:name=»android.permission.INTERNET» — приложение может выходить в интернет (есть разные разрешения например на получение SMS или доступ к SD)
R.java Генерируемый файл, руками его править бесполезно потому что он перезаписывается при каждой компиляции Файл содержит класс R(esources) в котором хранятся ссылки на все ресурсы, более подробно чуть ниже
В папке res содержит ресурсы нескольких типов, все они при компиляции сохраняются в класс R, папка разделена на ресурсы разного типа
drawable — картинки
layout — слои
values — переменные
есть еще (доки)
Думаю про картинки объяснять не надо. единственно что доступ к ним происходит вот так — R.drawable.image_name_without_extention
main.xml Слои хранят в себе разметку страниц по умолчанию
Код:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
</LinearLayout>
android😱rientation=»vertical» — вертикальное положение (как альбомная страница)
android:layout_width=»fill_parent» — заполняет весь экран в ширину
android:layout_height=»fill_parent» — заполняет весь экран в высоту
Основной экран содержит список ListView
android:id=»@id/android:list» — список доступен в ресурсах через ID R.id.list
android:layout_width=»fill_parent» — заполняет родительский объект по ширене
android:layout_height=»wrap_content» — имеет высоту содержимого
android:drawSelectorOnTop=»false» — первый элемент списка не подсвечен
еще пример row.xml
Код:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/vw1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/text"
android:textSize="12sp"
android:textStyle="bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
strings.xml Хранит в себе локализацию. если создать папку values-ru то из нее будет браться русская локаль
пример файла
Код:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="first">Первая строка</string>
<string name="second">Вторая строка</string>
</resources>
переходим к приложению MyActivity.java
пример класса
Код:
public class ResourceExplorer extends ListActivity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// список который сождержит информацию
List<Map<String, Object>> resourceNames = new ArrayList<Map<String, Object>>();
// Объект рядя
Map<String, Object> data;
// захардкодженые номеря взятые отсюда
// http://code.google.com/android/reference/android/R.drawable.html
for ( int idx = 17301504; idx <= 17301655; idx++ ){
data = new HashMap<String, Object>();
try {
String stg = Resources.getSystem().getResourceName(idx);
data.put("text", stg );
data.put("img", idx );
resourceNames.add(data);
}
catch (Resources.NotFoundException e) {
// игнорируем
}
}
SimpleAdapter notes = new SimpleAdapter(
this,
resourceNames,
R.layout.row,
new String[] { "text", "img" },
new int[] { R.id.text, R.id.img } );
setListAdapter(notes);
}
}