English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified
Показаны сообщения с ярлыком Программирование под Android. Показать все сообщения
Показаны сообщения с ярлыком Программирование под Android. Показать все сообщения

6 окт. 2010 г.

Использование Google Maps в Android

   Google Maps API позволяет добавлять в Android приложения возможность работы с картами Google. Чтобы подключить карты к вашему проекту, вам необходимо выполнить следующие шаги:
  1. Создать новый проект Android на базе библиотек Google API;
  2. Создать новый Android Virtual Device - c возможностью работы с Google API;
  3. Получить Map API Key;
  4. Подключить к проекту необходимые библиотеки и использовать классы Google Maps.


Шаг первый:

   Запустите Eclipse, создайте новый Android Project, можете назвать его HelloMap, и в поле Build Target  выберете Google APIs. Если у вас в Build Target нет Google APIs, значит у вас не установлен пакет с данным API. Пройдите Windows->Android SDK and AVD Manager->Installed Pakages, нажмите Update All... и установите пакет с Google API.

Шаг второй:

   Теперь нужно создать Android Virtual Device который имеет возможность работы с Google API. Пройдите Windows->Android SDK and AVD Manager->Virtual Devices. Нажмите New и в поле Target выберете Google APIs. Теперь можете запустите созданный эмулятор.

Шаг третий:

  Получение Map API Key. Для того чтобы иметь возможность отображать Google карты, вам необходимо использовать бесплатный Google Map API Key. Чтобы получить ключ необходимо выполнить следующие шаги:
  1. Найдите файл debug.keystore, он располагается в папке "C:\Documents and Settings\<User Name>\.android". Скопируйте данный файл в папку C:\(к примеру можете создать папку Android "C:\Android").
  2. Из данного keystore необходимо получить MD5 код. Для этого используйте утилиту keytool.exe которая поставляется вместе с JDK и располагается в папке "C:\Program Files\Java\<jdk using version>\bin".
  3. Запустите командную строку Пуск->Все программы->стандартные->командная строка. Перейдите в папку с keytool ("cd C:\Program Files\Java\<jdk uses version>\bin") и выполните следующую команду:
  4. keytool.exe -list -alias androiddebugkey -keystore "C:\android\debug.keystore" -storepass android -keypass android
    
    После выполнения данный команды вы должны увидеть на экране свой MD5 код.
  5. Скопируйте полученный MD5 и пройдите по ссылке http://code.google.com/intl/ru-RU/android/maps-api-signup.html. Следуйте инструкциям и получите свой API Key.



Шаг четвёртый:

   Для того чтобы использовать Google Maps API необходимо подключить библиотеку для работы с картами <uses-library android:name="com.google.android.maps"> и так как наше приложение будет загружать карты через интернет нужно позволить ему работать с интернетом INTERNET permission
   Откройте AndroidManifest.xml и добавьте в него <uses-library> и INTERNET permission:

    
        
            
                
                
            
        
 
 
    
      
    
    

 

Отображение карты.
   для того чтобы отобразить карты измените main.xml из папке res\layout. Вы должны использовать <com.google.android.maps.MapView> элемент, чтобы отобразить карту в вашем Activity.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">
 
    <com.google.android.maps.MapView 
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="Ваш API Key"
        />
 
</RelativeLayout>


   Теперь откройте HelloMap.Activity, данный класс должен быть унаследован от MapActivity. При наследовании от класса MapActivity необходимо переопределить метод isRoyteDisplayed():


package com.alukardev.hellomap2;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;

public class HelloMapActivity extends MapActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }
}


   Всё готово! Теперь можете запустить проект и посмотреть результат.


Масштабирование.
   Добавим в наш проект возможность масштабировать карту.
   Откройте main.xml и добавьте в него <LinearLayout>:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">
 
    <com.google.android.maps.MapView 
        android:id="@+id/mapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="0oJHawmPUco4Y2eJDV8r5cKv4kUseLVglm4-e0g"
        />
        
        <LinearLayout android:id="@+id/zoom" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true" 
        /> 
 
</RelativeLayout>
<LinearLayout> элемент нужен чтобы отобразить на нем кнопки масштабирования.

   Теперь откройте  HelloMapActivity.java. Импортируйте следующие библиотеки:

import com.google.android.maps.MapView.LayoutParams;  
import android.view.View;
import android.widget.LinearLayout;
   Добавьте следующий код после строчки  setContentView(R.layout.main);

mapView = (MapView) findViewById(R.id.mapView);
        LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
        View zoomView = mapView.getZoomControls(); 
 
        zoomLayout.addView(zoomView, 
            new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT)); 
        mapView.displayZoomControls(true);

   Файл HelloMapActivity.java полностью:

package com.alukardev.hellomap2;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;
import com.google.android.maps.MapView.LayoutParams;  
import android.view.View;
import android.widget.LinearLayout;

public class HelloMapActivity extends MapActivity 
{
 MapView mapView; 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapView = (MapView) findViewById(R.id.mapView);
        LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
        View zoomView = mapView.getZoomControls(); 
 
        zoomLayout.addView(zoomView, 
            new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT)); 
        mapView.displayZoomControls(true);
    }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }
}

   Теперь можете запустить проект и посмотреть результат.


  В качестве альтернативного решения можно использовать клавиши для масштабирования, для этого нужно вызывать методы zoomIn() и zoouOut() класса MapController:
package com.alukardev.hellomap2;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.os.Bundle;
import com.google.android.maps.MapView.LayoutParams;  

import android.view.KeyEvent;
import android.view.View;
import android.widget.LinearLayout;

public class HelloMapActivity extends MapActivity 
{
 MapView mapView;
 
  public boolean onKeyDown(int keyCode, KeyEvent event) 
     {
         MapController mc = mapView.getController(); 
         switch (keyCode) 
         {
             case KeyEvent.KEYCODE_3:
                 mc.zoomIn();
                 break;
             case KeyEvent.KEYCODE_1:
                 mc.zoomOut();
                 break;
         }
         return super.onKeyDown(keyCode, event);
     }    
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapView = (MapView) findViewById(R.id.mapView);
        LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
        View zoomView = mapView.getZoomControls(); 
 
        zoomLayout.addView(zoomView, 
            new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT)); 
        mapView.displayZoomControls(true);
    }

 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }
}


Читать дальше......

23 сент. 2010 г.

Обзор структуры проекта под Android

   Всем привет!!! В этой статье я расскажу об основных файлах проекта под Android и их назначении.




Основные файлы: 
  • AndroidManifest.xml - главный конфигурационный файл приложения;
  • /src - каталог в котором хранятся все исходные коды приложения;
  • /src/com.alukardev.hellowworld/MainActivity.java - точка входа в приложение (объявляется в Android Manifest).
  • /res - здесь хранятся все все внешние ресурсы, такие как анимация, картинки, видео, строковые переменные и прочее.
  • /res/drawable - здесь хранятся графические ресурсы. При создании нового проекта, можно видеть, что создается три папки drawable - hdpi, ldpi и mdpi, это нужно чтобы хранить в каждой из них одинаковые рисунки, но с различным качеством. На первых парах, можно удалить все эти папки и создать одну папку drawable и в нее помещать графические объекты.
  • /res/layout/main.xml - данный файл содержит описание интерфейса вашего Activity. В этом файле вы создаете внешний вид Activity. Делать это можно как в ручную, в xml файле, так и в графическом редакторе.
 
  • /res/values/strings.xml - здесь хранятся строковые значения.

    Подробнее об AndroidManifest:

       Кликните два раза по файлу AndroidManifest.xml вашего проекта и откроется редактор.


       Вся информация файла Manifest расположена на 5 вкладках:
    • Manifest - на этой вкладке хранится информация о пространстве имен (Pakage),  версии проекта, версии кода, и минимальной используемой SDK.
    • Application - содержит такую информацию, как имя проекта, используемая иконка, и т.д. Особое внимание здесь стоит обратить на раздел Application Nodes, именно здесь определяются Activity (классы которые имеют интерфейс и должны  отображаться как окно). 
       Приведу пример чтобы стало все понятно:
       И так у вас создан новый проект, с главным файлом Activity (в моем случае он называется MainActivity). Теперь создайте новый класс, для этого щёлкните правой кнопкой мыши по вашему пространству имен (в моем случае это com.alukardev.helloworld), и выберете New->Class, должно появиться вот такое окно:


        В поле Name введите, скажем TwoActivity, а в поле Superclass нажмите Browse и введите android.app.Activity, тем самым мы указываем, что наш класс наследуется от класса Activity, и нажмите кнопку Finish. Можно сделать проще скопировав файл MainActivity и переименовав его.

         Класс создан теперь нужно создать файл с описанием интерфейса. Перейдите в директорию /res/layout и сделайте копию файла main, и переименуйте эту копию в two.xml например.
         
         Теперь нужно связать класс с интерфейсом. Если посмотреть на класс MainActivity, то можно увидеть, что там переопределяться метод onCreate и в нем связывается класс с layout: setContentView(R.layout.main). Сделаем тоже самое и для вновь созданного класса. 
         Выберете класс TwoActivity, на вкладке Outline щелкните правой кнопкой мыши по TwoActivity и выберете Source->Override/Implement Methods...


         В появившемся окне найдите метод onCreate, поставьте напротив него галочку и нажмите OK. Теперь добавьте в данный метод следующий код: setContentView(R.layout.two); 
         Новый Activity создан, теперь нужно объявить его в Manifest файле. Откройте AndroidManifest.xml, перейдите на вкладку Application, в Application Nodes нажмите Add... Если в появившемся окне у вас выбрано Create a new element in the selected element, то выберете Create a new element at the top level, in Application. Выберете Activity и нажмите ОК. Теперь на вкладке Attributes for Activity нажмите Browse... напротив Name, в появившемся окне введите свое пространство имен сверху (в моем случае это com.alukardev) и в нижнем окне выберете TwoActivity, нажмите ОК и Ctrl-S. Всё новый Activity создан.
      • Permissions - на этой вкладке определяются права доступа вашего приложения к различным функциям. Например если вашему приложению требуется считать список контактов из телефона, тогда ваш нужно зарегистрировать Uses-Permissions с именем android.permission.READ_CONTACTS. Для этого на вкладке Permissions нажмите кнопку Add..., выберете Uses_Permissions и на вкладке Atributes for Uses Permissions выберете android.permission.READ_CONTACTS.
      • AndroidManifest.xml - на этой вкладке можно редактировать Manifest файл вручную в xml разметке.

      <?xml version="1.0" encoding="utf-8"?>
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.alukardev.helloworld"
      android:versionCode="1"
      android:versionName="1.0">
      <application android:icon="@drawable/icon" android:label="@string/app_name">
      <activity android:name=".MainActivity"
      android:label="@string/app_name">
      <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      </activity>
      <activity android:name="TwoActivity"></activity>
      </application>
      <uses-sdk android:minSdkVersion="7" />
      <uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
      <uses-permission></uses-permission>
      <instrumentation></instrumentation>
      </manifest> 
      
         Обратите внимание на тег <intent-fliter>, эти тегом помечается Activity, который является точкой входа в приложение.
         Ну вот пожалуй и всё что я хотел написать в этой статье, надеюсь она вам оказалась полезной, и до встречи в следующих постах:)
      Читать дальше......

      22 сент. 2010 г.

      Hello Android. Пишем Hello World под ОС Android.

      Всем доброго времени суток! В этой статье мы сделаем первые шаги в увлекательном деле - программирование под Android:)
      Ну что же, от слов к делу, приступим.

      Установка IDE, необходимого для программирования под Android.

      И так если вы решили писать программы под Android, первым делом надо скачать и установить необходимое ПО:



         Следующий шаг - установка.
         Первым делом установите JDK. После этого извлеките архив Eclipse Helios в удобное для вас место, в моем случае это "C:\eclipse". На этом установка Eclipse завершена.
         Установка Android SDK.  Запустите Eclipse, в меню выберете Help->Install New Software..., в появившемся  окне кликните Add,  в появившемся окне в поле Name введите любое название (например Android), а в полеLocation адрес: https://dl-ssl.google.com/android/eclipse/ . Нажимаем ОК и через некоторое время появитьсяDevelopment Tools, ставим напротив него галочку и нажимаем Next, потом ещё раз Next, после чего начнется загрузка и установка ADT (Android Development Tools). По окончании установки перезагрузите Eclipse.
        Теперь извлеките архив с Android SDK в папку с Eclipse (в моем случае это "C:\eclipse"). Итак все установлено осталось только обновить Android SDK (в моем случае это заняло больше всего времени:). В Eclipse выберетеWindows->Android SDK and AVD Manager, перейдите на вкладку Installed Packages, нажмите кнопку Update All... После того как будет выведен список обновлений, вы можете выбрать Accept All (в этом случае установятся все существующие версии библиотек), или выбрать только нужные вам, после чего нажмите кнопку Install и ждите. На этом установка необходимого IDE закончена и можно приступать непосредственно к программированию.
         Примечание: Если так получилось что Eclipse не видит Android SDK, выберете Windows->Preferences->Android, и в SDK Location укажите путь к Android SDK.

        Пишем "Hello World".

        Создание AVD (Android Virtual Device).

        Прежде чем создавать и запускать новые проекты, необходимо создать эмулятор девайса, на котором можно будет тестировать проекты. Для этого выберете Windows->Android SDK and AVD Manager->Virtual Devices, нажмите New...  В появившемся окне в поле Name введите любое имя, в поле Target выберете версию платформы, в поле Size  размер карты (например 1024), в поле Skin можно выбрать размер экрана, после чего нажмите Create AVD.



         Эмулятор создан, теперь можно его запустить, нажмите Start->Launch. Учтите, что загрузка ОС в эмуляторе может занять продолжительное время (всё зависит от того на сколько мощный у вас ПК),  так что наберитесь терпения и ждите:)

        Создание нового проекта.
         Ну что же вот наконец-то и пришло время создать наш первый проект под  Android.
      Выберете File->New->Project..., в появившемся окне выберете Android->Android Project, нажмите Next, в следующей вкладке в поле Project Name введите имя проекта, в Build Target выберете версию платформы для которой собираетесь писать проект.
      На вкладке Properties в поле Application Name введите имя главного окна приложения, в поле Pacage Nameпуть по которому будет храниться ваш проект, например (com.alukardev.helloworld), в поле Create Activity название вашего главного файла проекта (например MainActivity) и наконец в поле Min SDK Version минимальную версию API для которых пишется проект (если платформа версии 2.2, то версия API - 8).



         После чего нажмите Finish.
         Ну вот в общем и все, вам осталось нажать кнопку Run (или Debug) в Eclipse и увидеть на эмуляторе заветные слова.



         В следующей статье я подробно расскажу о структуре проекта.

      Читать дальше......