Работа над приложениями 2-4 начинается с импорта подготовленных проектов в рабочую среду (Workspace). Импорт осуществляется следующим образом:
(рис 2.1) Настройка эмулятора
(рис 2.2) Создание нового Android-проектаres/layout/activity_main.xml, src/MainActivity.java и AndroidManifest.xml. Посмотрите, что в них содержится. Зная, как выглядит готовое приложение, постарайтесь разобраться, за что отвечает каждая составляющая этих файлов.На экране расположены три кнопки (Red, Green, Blue), при нажатии на которые меняется фоновый цвет и появляется соответствующее уведомление (Рис 2.3).
(рис 2.3) Запущенное на эмуляторе приложение Button Example
res/layout/activity_main.xml) и обработки ее нажатия (src/MainActivity.java).res/drawable).На экране расположены три кнопки (Frame animation, Transform animation, Cancel animation). При нажатии на первую кнопку воспроизводится покадровая анимация, при нажатии на вторую – анимация преобразований, при нажатии на третью анимация прекращается.
res/anim/frame_anim.xml и res/anim/transform_anim.xml) и примерами их применения к объекту (src/MainActivity.java).| Элемент | Атрибуты |
|---|---|
<alpha>
анимация изменения прозрачности | fromAlpha – начальное значение прозрачности
toAlpha – конечное значение прозрачности |
<scale>
анимация изменения размера |
|
<translate>
анимация движения
(вертикальная/горизонтальная) |
|
<rotate>
анимация вращения |
|
На экране представлена следующая информация о местоположении (Рис 2.4):
(рис 2.4) Запущенное на эмуляторе приложение Location Example
(рис 2.5) Значения долготы и широты отправляются на эмулятор с помощью DDMS<uses-permission> в файле AndroidManifest.xml и подумайте, зачем он прописывается в данном приложении.src/MainActivity.java и постарайтесь разобраться, как происходит жизненный цикл Activity данного приложения, и какие действия совершаются на каждом этапе.Данное приложение содержит тексты программ, рассматриваемых в примерах.
res/layout/activity_main.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.application"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>src/MainActivity.java
package com.example.application;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button switchToGreen;
private Button switchToRed;
private Button switchToBlue;
private LinearLayout screenLayout;
private Toast informationToast;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// init buttons
switchToBlue = (Button) findViewById(R.id.switchBlue);
switchToGreen = (Button) findViewById(R.id.switchGreen);
switchToRed = (Button) findViewById(R.id.switchRed);
screenLayout = (LinearLayout) findViewById(R.id.screenLayout);
// setup listeners
switchToBlue.setOnClickListener(this);
switchToRed.setOnClickListener(this);
switchToGreen.setOnClickListener(this);
informationToast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
}
public void onClick(View view) {
if (switchToBlue.equals(view)) {
screenLayout.setBackgroundColor(Color.BLUE);
showToast("Hello blue");
} else if (switchToRed.equals(view)) {
screenLayout.setBackgroundColor(Color.RED);
showToast("Hello red");
} else if (switchToGreen.equals(view)) {
screenLayout.setBackgroundColor(Color.GREEN);
showToast("Hello green");
}
}
private void showToast(String text) {
informationToast.cancel();
informationToast.setText(text);
informationToast.show();
}
}res/anim/frame_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item
android:drawable="@drawable/ic_launcher"
android:duration="200"/>
<item
android:drawable="@drawable/ic_launcher1"
android:duration="200"/>
<item
android:drawable="@drawable/ic_launcher2"
android:duration="200"/>
<item
android:drawable="@drawable/ic_launcher3"
android:duration="200"/>
</animation-list>res/anim/transform_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<scale
android:duration="700"
android:fillAfter="false"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.4"
android:toYScale="0.6" />
<set android:interpolator="@android:anim/decelerate_interpolator" >
<scale
android:duration="400"
android:fillBefore="false"
android:fromXScale="1.4"
android:fromYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:toXScale="0.0"
android:toYScale="0.0" />
<rotate
android:duration="400"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:toDegrees="-45"
android:toYScale="0.0" />
</set>
</set>
src/MainActivity.java
package com.example.application;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener {
private Button startFrameAnim;
private Button startTransformAnim;
private Button cancelAnim;
private ImageView animationView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startFrameAnim = (Button) findViewById(R.id.frameAnimationStart);
startTransformAnim= (Button) findViewById(R.id.transformAnimationStart);
cancelAnim = (Button) findViewById(R.id.cancelAnimation);
animationView = (ImageView) findViewById(R.id.animationView);
startFrameAnim.setOnClickListener(this);
startTransformAnim.setOnClickListener(this);
cancelAnim.setOnClickListener(this);
}
public void onClick(View v) {
if (startFrameAnim.equals(v)) {
animationView.setBackgroundResource(R.anim.frame_anim);
AnimationDrawable animation =
(AnimationDrawable) animationView.getBackground();
animation.start();
} else if (startTransformAnim.equals(v)) {
animationView.setBackgroundResource(R.drawable.ic_launcher);
Animation transformAnimation =
AnimationUtils.loadAnimation(this, R.anim.transform_anim);
animationView.startAnimation(transformAnimation);
} else if (cancelAnim.equals(v)) {
animationView.setBackgroundColor(Color.BLACK);
}
}
}src/MainActivity.java
package com.example.application;
import java.util.Date;
import android.app.Activity;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity implements LocationListener {
private TextView latitudeLabel;
private TextView longitudeLabel;
private TextView statusLabel;
private LocationManager locationManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
latitudeLabel = (TextView) findViewById(R.id.latitudeLabel);
longitudeLabel = (TextView) findViewById(R.id.longitudeLabel);
statusLabel = (TextView) findViewById(R.id.statusLabel);
locationManager = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
// construct a criteria with best accuracy
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// get best ENABLED provider that meets the criteria
String provider = locationManager.getBestProvider(criteria, true);
// request the updates
locationManager.requestLocationUpdates(provider, 0, 0, this);
}
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
public void onLocationChanged(Location location) {
statusLabel.setText("Location recieved at " + new Date());
latitudeLabel.setText("Latitude: " + location.getLatitude());
longitudeLabel.setText("Longitude: " + location.getLongitude());
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.application"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>Работа над приложениями 2-4 начинается с импорта подготовленных проектов в рабочую среду (Workspace). Импорт осуществляется следующим образом:
(рис 2.1) Настройка эмулятора
(рис 2.2) Создание нового Android-проектаres/layout/activity_main.xml, src/MainActivity.java и AndroidManifest.xml. Посмотрите, что в них содержится. Зная, как выглядит готовое приложение, постарайтесь разобраться, за что отвечает каждая составляющая этих файлов.На экране расположены три кнопки (Red, Green, Blue), при нажатии на которые меняется фоновый цвет и появляется соответствующее уведомление (Рис 2.3).
(рис 2.3) Запущенное на эмуляторе приложение Button Example
res/layout/activity_main.xml) и обработки ее нажатия (src/MainActivity.java).res/drawable).На экране расположены три кнопки (Frame animation, Transform animation, Cancel animation). При нажатии на первую кнопку воспроизводится покадровая анимация, при нажатии на вторую – анимация преобразований, при нажатии на третью анимация прекращается.
res/anim/frame_anim.xml и res/anim/transform_anim.xml) и примерами их применения к объекту (src/MainActivity.java).| Элемент | Атрибуты |
|---|---|
<alpha>
анимация изменения прозрачности | fromAlpha – начальное значение прозрачности
toAlpha – конечное значение прозрачности |
<scale>
анимация изменения размера |
|
<translate>
анимация движения
(вертикальная/горизонтальная) |
|
<rotate>
анимация вращения |
|
На экране представлена следующая информация о местоположении (Рис 2.4):
(рис 2.4) Запущенное на эмуляторе приложение Location Example
(рис 2.5) Значения долготы и широты отправляются на эмулятор с помощью DDMS<uses-permission> в файле AndroidManifest.xml и подумайте, зачем он прописывается в данном приложении.src/MainActivity.java и постарайтесь разобраться, как происходит жизненный цикл Activity данного приложения, и какие действия совершаются на каждом этапе.Данное приложение содержит тексты программ, рассматриваемых в примерах.
res/layout/activity_main.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.application"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>src/MainActivity.java
package com.example.application;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button switchToGreen;
private Button switchToRed;
private Button switchToBlue;
private LinearLayout screenLayout;
private Toast informationToast;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// init buttons
switchToBlue = (Button) findViewById(R.id.switchBlue);
switchToGreen = (Button) findViewById(R.id.switchGreen);
switchToRed = (Button) findViewById(R.id.switchRed);
screenLayout = (LinearLayout) findViewById(R.id.screenLayout);
// setup listeners
switchToBlue.setOnClickListener(this);
switchToRed.setOnClickListener(this);
switchToGreen.setOnClickListener(this);
informationToast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
}
public void onClick(View view) {
if (switchToBlue.equals(view)) {
screenLayout.setBackgroundColor(Color.BLUE);
showToast("Hello blue");
} else if (switchToRed.equals(view)) {
screenLayout.setBackgroundColor(Color.RED);
showToast("Hello red");
} else if (switchToGreen.equals(view)) {
screenLayout.setBackgroundColor(Color.GREEN);
showToast("Hello green");
}
}
private void showToast(String text) {
informationToast.cancel();
informationToast.setText(text);
informationToast.show();
}
}res/anim/frame_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false" >
<item
android:drawable="@drawable/ic_launcher"
android:duration="200"/>
<item
android:drawable="@drawable/ic_launcher1"
android:duration="200"/>
<item
android:drawable="@drawable/ic_launcher2"
android:duration="200"/>
<item
android:drawable="@drawable/ic_launcher3"
android:duration="200"/>
</animation-list>res/anim/transform_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<scale
android:duration="700"
android:fillAfter="false"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.4"
android:toYScale="0.6" />
<set android:interpolator="@android:anim/decelerate_interpolator" >
<scale
android:duration="400"
android:fillBefore="false"
android:fromXScale="1.4"
android:fromYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:toXScale="0.0"
android:toYScale="0.0" />
<rotate
android:duration="400"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:toDegrees="-45"
android:toYScale="0.0" />
</set>
</set>
src/MainActivity.java
package com.example.application;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener {
private Button startFrameAnim;
private Button startTransformAnim;
private Button cancelAnim;
private ImageView animationView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startFrameAnim = (Button) findViewById(R.id.frameAnimationStart);
startTransformAnim= (Button) findViewById(R.id.transformAnimationStart);
cancelAnim = (Button) findViewById(R.id.cancelAnimation);
animationView = (ImageView) findViewById(R.id.animationView);
startFrameAnim.setOnClickListener(this);
startTransformAnim.setOnClickListener(this);
cancelAnim.setOnClickListener(this);
}
public void onClick(View v) {
if (startFrameAnim.equals(v)) {
animationView.setBackgroundResource(R.anim.frame_anim);
AnimationDrawable animation =
(AnimationDrawable) animationView.getBackground();
animation.start();
} else if (startTransformAnim.equals(v)) {
animationView.setBackgroundResource(R.drawable.ic_launcher);
Animation transformAnimation =
AnimationUtils.loadAnimation(this, R.anim.transform_anim);
animationView.startAnimation(transformAnimation);
} else if (cancelAnim.equals(v)) {
animationView.setBackgroundColor(Color.BLACK);
}
}
}src/MainActivity.java
package com.example.application;
import java.util.Date;
import android.app.Activity;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity implements LocationListener {
private TextView latitudeLabel;
private TextView longitudeLabel;
private TextView statusLabel;
private LocationManager locationManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
latitudeLabel = (TextView) findViewById(R.id.latitudeLabel);
longitudeLabel = (TextView) findViewById(R.id.longitudeLabel);
statusLabel = (TextView) findViewById(R.id.statusLabel);
locationManager = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
// construct a criteria with best accuracy
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
// get best ENABLED provider that meets the criteria
String provider = locationManager.getBestProvider(criteria, true);
// request the updates
locationManager.requestLocationUpdates(provider, 0, 0, this);
}
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
public void onLocationChanged(Location location) {
statusLabel.setText("Location recieved at " + new Date());
latitudeLabel.setText("Latitude: " + location.getLatitude());
longitudeLabel.setText("Longitude: " + location.getLongitude());
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.application"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.