Урок 20. Анимация

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 20. Анимация

Сообщение damager82 » 29 сен 2011, 03:00

В этом уроке мы:

- рассмотрим анимацию View-компонентов

Click here to read this article!
Последний раз редактировалось damager82 28 апр 2017, 10:56, всего редактировалось 8 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

krack-digger
Сообщения: 2
Зарегистрирован: 24 мар 2012, 15:18

Re: Урок 20. Анимация

Сообщение krack-digger » 24 мар 2012, 15:22

Укажите пожалуйста полный код с import android.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 20. Анимация

Сообщение damager82 » 26 мар 2012, 09:49

Сюда пока скину

Код: Выделить всё

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;
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

krack-digger
Сообщения: 2
Зарегистрирован: 24 мар 2012, 15:18

Re: Урок 20. Анимация

Сообщение krack-digger » 27 мар 2012, 11:58

Спасибо большое!

ilya
Сообщения: 3
Зарегистрирован: 09 май 2012, 10:58

Re: Урок 20. Анимация

Сообщение ilya » 09 май 2012, 11:00

создал проект, 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

Почему не получается разрешить имена ресурсов?

ilya
Сообщения: 3
Зарегистрирован: 09 май 2012, 10:58

Re: Урок 20. Анимация

Сообщение ilya » 09 май 2012, 13:31

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

Почему не получается разрешить имена ресурсов?
Проблема была в import android.R;
Видимо он добавляется при ctrl+shift+o

alex6999
Сообщения: 13
Зарегистрирован: 29 май 2012, 18:50

Re: Урок 20. Анимация

Сообщение alex6999 » 02 июн 2012, 12:22

сделал вот так вот

Код: Выделить всё

		anim = AnimationUtils.loadAnimation(this, R.anim.mycombo);
		tvHour.startAnimation(anim);
		anim = AnimationUtils.loadAnimation(this, R.anim.myrotate);
		tvHour.startAnimation(anim);
у меня два раза выполняется вращение, т.е. из фукции следует прямой вызов, можно запустить плясать все элементы в пляску одновременно

стал копать, нашёл интересный атрибут android:ordering="sequentially" делал как в хелпах - неработает

вообщем я сделал так

Код: Выделить всё

<?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>
задержку поставил 2600, чтобы убрать лаг в переключении анимации
а вот android:repeatCount="2" надо убирать, а то работает так
первый сет, второй сет, задержка, второй сет.

daiz123
Сообщения: 18
Зарегистрирован: 11 июн 2012, 15:42

Re: Урок 20. Анимация

Сообщение daiz123 » 25 июн 2012, 18:39

xmlns:android="http://schemas.android.com/apk/res/android" Скажите, пожалуйста, для чего нужна эта строка?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 20. Анимация

Сообщение damager82 » 29 июн 2012, 15:11

daiz123 писал(а):xmlns:android="http://schemas.android.com/apk/res/android" Скажите, пожалуйста, для чего нужна эта строка?
Это пространство имен. Так просто и не объяснить ...
Попробуйте тут глянуть http://www.vbnet.ru/articles/showarticle.aspx?id=146
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Eves
Сообщения: 2
Зарегистрирован: 19 июл 2012, 14:21
Контактная информация:

Re: Урок 20. Анимация

Сообщение Eves » 19 июл 2012, 14:23

Почему-то приложение крашется на реальном девайсе при выборе из контекстменю :О

paththeir
Сообщения: 2
Зарегистрирован: 22 июл 2012, 13:55

Re: Урок 20. Анимация

Сообщение paththeir » 22 июл 2012, 13:59

В общем-то в этом месте урока

Код: Выделить всё

 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;
Можно было в кейсах указать только anim = ..., а tv.startAnimation(anim) указать после свитча.
Ну так, для сокращения кода.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 20. Анимация

Сообщение damager82 » 23 июл 2012, 09:24

paththeir писал(а):Можно было в кейсах указать только anim = ..., а tv.startAnimation(anim) указать после свитча.
Ну так, для сокращения кода.
Вообще да :)
Сам не знаю, зачем в каждый кейс это втыкнул ...
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

aftor
Сообщения: 1
Зарегистрирован: 26 июл 2012, 13:42

Re: Урок 20. Анимация

Сообщение aftor » 26 июл 2012, 15:26

Товарищи!!! нужна ваша помощь, не могу найти ответ. Уже 2 дня в google сижу.

Есть анимация, в ней увеличение и перемищение объекта, при запуске она сризаеться по всем бокам, потому что ее родитель чуть больше по размерам.

Как можно избежать этого, как чтоб анимация не обращала не на что внимание?

Код: Выделить всё

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>

Riffi
Сообщения: 1
Зарегистрирован: 27 июл 2012, 07:55

Re: Урок 20. Анимация

Сообщение Riffi » 27 июл 2012, 09:22

Я так понял, на android 2.1 это не работает ?

papka
Сообщения: 5
Зарегистрирован: 26 июл 2012, 12:28

Re: Урок 20. Анимация

Сообщение papka » 27 июл 2012, 09:44

Работает.

Blockhead
Сообщения: 4
Зарегистрирован: 20 авг 2012, 10:06

Re: Урок 20. Анимация

Сообщение Blockhead » 10 сен 2012, 09:00

А возможно дописать статью на тему fillAfter и физического расположения Layout после? В интернете мало об этом информации...

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 20. Анимация

Сообщение damager82 » 19 сен 2012, 15:51

Blockhead писал(а):А возможно дописать статью на тему fillAfter и физического расположения Layout после? В интернете мало об этом информации...
Да, надо бы. Полезная штука. Внесу в список будущих материалов.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Lorkn
Сообщения: 2
Зарегистрирован: 21 сен 2012, 08:21

Re: Урок 20. Анимация

Сообщение Lorkn » 21 сен 2012, 10:16

Не работает меню. Не вызывается в эмуляторе и реальном устройстве (при нажатии на кнопку меню ничего не происходит). Код из урока один в один.

avd android 2.3.3, real device android 2.3.4

Предыдущие уроки компилировались и запускались нормально. В чём может быть здесь дело?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 20. Анимация

Сообщение damager82 » 21 сен 2012, 14:47

Lorkn писал(а):Не работает меню. Не вызывается в эмуляторе и реальном устройстве (при нажатии на кнопку меню ничего не происходит). Код из урока один в один.

avd android 2.3.3, real device android 2.3.4

Предыдущие уроки компилировались и запускались нормально. В чём может быть здесь дело?
Речь об этом уроке? Продебажьте или поставьте запись в лог в методе onCreateContextMenu, чтобы проверить вызывается он или нет.
строка registerForContextMenu(tv); точно есть?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Lorkn
Сообщения: 2
Зарегистрирован: 21 сен 2012, 08:21

Re: Урок 20. Анимация

Сообщение Lorkn » 24 сен 2012, 09:50

Прошу извинить за невнимательность. Всё работает.

Ответить