Урок 20. Анимация
Добавлено: 29 сен 2011, 03:00
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Код: Выделить всё
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;
Проблема была в import android.R;ilya писал(а):создал проект, android 2.2, api level 8
скопировал пример, при билде проекта ошибки:
Description Resource Path Location Type
main cannot be resolved or is not a field Test20Activity.java /test20/src/com/test20 line 28 Java Problem
myalpha cannot be resolved or is not a field Test20Activity.java /test20/src/com/test20 line 60 Java Problem
mycombo cannot be resolved or is not a field Test20Activity.java /test20/src/com/test20 line 77 Java Problem
myrotate cannot be resolved or is not a field Test20Activity.java /test20/src/com/test20 line 73 Java Problem
myscale cannot be resolved or is not a field Test20Activity.java /test20/src/com/test20 line 65 Java Problem
mytrans cannot be resolved or is not a field Test20Activity.java /test20/src/com/test20 line 69 Java Problem
Почему не получается разрешить имена ресурсов?
Код: Выделить всё
anim = AnimationUtils.loadAnimation(this, R.anim.mycombo);
tvHour.startAnimation(anim);
anim = AnimationUtils.loadAnimation(this, R.anim.myrotate);
tvHour.startAnimation(anim);
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
>
<set>
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:duration="3000"
android:pivotX="50%"
android:pivotY="50%">
</rotate>
<scale
android:fromXScale="0.1"
android:toXScale="1.0"
android:fromYScale="0.1"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000">
</scale>
</set>
<rotate
android:startOffset="2600"
android:fromDegrees="0"
android:toDegrees="360"
android:duration="6000"
android:repeatCount="2"
android:pivotX="50%"
android:pivotY="50%"
>
</rotate>
</set>
Это пространство имен. Так просто и не объяснить ...daiz123 писал(а):xmlns:android="http://schemas.android.com/apk/res/android" Скажите, пожалуйста, для чего нужна эта строка?
Код: Выделить всё
case MENU_SCALE_ID:
anim = AnimationUtils.loadAnimation(this, R.anim.myscale);
tv.startAnimation(anim);
break;
case MENU_TRANSLATE_ID:
anim = AnimationUtils.loadAnimation(this, R.anim.mytrans);
tv.startAnimation(anim);
break;
case MENU_ROTATE_ID:
anim = AnimationUtils.loadAnimation(this, R.anim.myrotate);
tv.startAnimation(anim);
break;
Вообще даpaththeir писал(а):Можно было в кейсах указать только anim = ..., а tv.startAnimation(anim) указать после свитча.
Ну так, для сокращения кода.
Код: Выделить всё
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class Animation2Activity extends Activity {
LinearLayout layout_left_animation, layout_main_animation, mainView;
Animation animationIconsGroup, animationIcons, animationMain;
ImageView imageView1, imageChips, image_contact;
FrameLayout image_parent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
imageChips = (ImageView) findViewById(R.id.imageChips);
}
public void buttonClick1(View v) {
Animation anim3 = new ScaleAnimation(1, 4, 1, 4, 50, 50);
anim3.setDuration(1000);
TranslateAnimation anim4 = new TranslateAnimation(0, 200, 0, 200);
anim4.setDuration(1000);
AnimationSet anim = new AnimationSet(false);
anim.addAnimation(anim3);
anim.addAnimation(anim4);
imageChips.startAnimation(anim);
}
}
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="buttonClick1"
android:text="Button1" android:layout_gravity="center_horizontal"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/image_parent"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_gravity="center" >
<ImageView
android:id="@+id/imageChips"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:src="@drawable/ic_launcher" />
</FrameLayout>
</FrameLayout>
</LinearLayout>
Да, надо бы. Полезная штука. Внесу в список будущих материалов.Blockhead писал(а):А возможно дописать статью на тему fillAfter и физического расположения Layout после? В интернете мало об этом информации...
Речь об этом уроке? Продебажьте или поставьте запись в лог в методе onCreateContextMenu, чтобы проверить вызывается он или нет.Lorkn писал(а):Не работает меню. Не вызывается в эмуляторе и реальном устройстве (при нажатии на кнопку меню ничего не происходит). Код из урока один в один.
avd android 2.3.3, real device android 2.3.4
Предыдущие уроки компилировались и запускались нормально. В чём может быть здесь дело?