2012/2013 учебный год
Упражнение 2
На основе приложения из предыдущего упражнения создайте новый проект. Импортируйте два изображения в проект. В приложении должны быть два изображения и две кнопки. Первая кнопка вызывает анимацию одного вида для первого изображения, а вторая кнопка - анимацию другого вида для второго изображения.
Внимание! Откройте файл
gen/org/ggpi/AnimClick02/R.java
и проверяйте после выполнения каждого из ниже приведённых соответствующих примеров, что в нём зарегистрированы объекты
frameLayout linearLayout1 btnRotate image1 myrotate
Указания к выполнению
Импортируйте изображение в проект, см. Краткую теорию.
Внесите в файл main.xml изменение для ImageView
android:src="@drawable/sky"
вместо sky название своего файла с изображением.
Пример 2.1. Файл res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/image1" android:src="@drawable/sky" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <Button android:id="@+id/btnRotate" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Rotate" > </Button> </LinearLayout>
Создайте папку res/anim/
Пример 2.2. Файл res/anim/myrotate.xml
Создайте файл res/anim/myrotate.xml
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" android:duration="3000"> </rotate>
Пример 2.3. Файл MainActivity.java
package org.ggpi.AnimClick02; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.view.animation.Animation; import android.view.animation.AnimationUtils; public class MainActivity extends Activity implements OnClickListener { ImageView image1; Button btnRotate; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // найдем View-элементы btnRotate = (Button) findViewById(R.id.btnRotate); image1 = (ImageView) findViewById(R.id.image1); // присвоим обработчик кнопкам btnRotate.setOnClickListener(this); } @Override public void onClick(View v) { Animation anim = null; // по id определяем кнопку, вызвавшую этот обработчик switch (v.getId()) { case R.id.btnRotate: // кнопка Alpha anim = AnimationUtils.loadAnimation(this, R.anim.myrotate); image1.startAnimation(anim); break; } } }