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

Обсуждение уроков
Finansist
Сообщения: 1
Зарегистрирован: 16 ноя 2014, 01:45

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

Сообщение Finansist » 16 ноя 2014, 01:47

perspektiv писал(а):Прошу помощи. Программа запускается. ошибок никаких не выдает, но при нажатии на текст ничего не происходит. Как быть?
Аналогичная проблема.
Такая же ситуация была с уроком 15 - Контекстное меню.

Может кто помочь разобраться с этим, плз.

moorzzzick
Сообщения: 2
Зарегистрирован: 11 фев 2015, 11:42

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

Сообщение moorzzzick » 11 фев 2015, 11:48

Здравствуйте. А подскажите, пожалуйста, был ли урок, посвященный изменению анимации загрузки приложения?
Если нет, то посоветуйте, где можно про это узнать :-)

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

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

Сообщение doter.ua » 11 фев 2015, 13:24

moorzzzick писал(а):Здравствуйте. А подскажите, пожалуйста, был ли урок, посвященный изменению анимации загрузки приложения?
Если нет, то посоветуйте, где можно про это узнать :-)
После запуска сразу открывается лаунчер активити, о какой анимации идет речь? Фейковая загрузка прогрессБара на экране с паузой 1-2 сек?
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

moorzzzick
Сообщения: 2
Зарегистрирован: 11 фев 2015, 11:42

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

Сообщение moorzzzick » 14 фев 2015, 17:28

doter.ua писал(а):
moorzzzick писал(а):Здравствуйте. А подскажите, пожалуйста, был ли урок, посвященный изменению анимации загрузки приложения?
Если нет, то посоветуйте, где можно про это узнать :-)
После запуска сразу открывается лаунчер активити, о какой анимации идет речь? Фейковая загрузка прогрессБара на экране с паузой 1-2 сек?
да, именно это.

Аватара пользователя
HizZ
Сообщения: 4
Зарегистрирован: 23 апр 2014, 08:30
Откуда: Украина, Киев

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

Сообщение HizZ » 14 фев 2015, 19:07

Господа, подскажите пожалуйста как побороть проблему?
Суть проблемы: я добавил функции контекстного меню в обычное меню + кнопка выхода
но при нажатии на кнопку выход ругается на 109-ю строку

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

package com.hizz.p020_lessons;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.Layout;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.RelativeLayout;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity {

    final int MENU_ALPHA_ID = 1;
    final int MENU_SCALE_ID = 2;
    final int MENU_TRANSLATE_ID = 3;
    final int MENU_ROTATE_ID = 4;
    final int MENU_COMBO_ID = 5;
    final int MENU_QUIT_ID = 6;
    TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tv = (TextView) findViewById(R.id.tV);
        registerForContextMenu(tv);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        switch (v.getId()){
            case R.id.tV:
                menu.add(0, MENU_ALPHA_ID,      0, "Alpha");
                menu.add(0, MENU_SCALE_ID,      0, "Scale");
                menu.add(0, MENU_TRANSLATE_ID,  0, "Trans");
                menu.add(0, MENU_ROTATE_ID,     0, "Rotate");
                menu.add(0, MENU_COMBO_ID,      0, "Combo");
//                menu.add(0, MENU_QUIT_ID,       0, "Вихід");
        }
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        Animation startAnim = null;
        switch (item.getItemId()){
            case MENU_ALPHA_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
                break;
            case MENU_SCALE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myscle);
                break;
            case MENU_TRANSLATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.matrance);
                break;
            case MENU_ROTATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myrotate);
                break;
            case MENU_COMBO_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.mycombo);
                break;
        }
        tv.startAnimation(startAnim);
        return super.onContextItemSelected(item);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        menu.add(0, MENU_ALPHA_ID,      0, "Alpha");
        menu.add(0, MENU_SCALE_ID,      0, "Scale");
        menu.add(0, MENU_TRANSLATE_ID,  0, "Trans");
        menu.add(0, MENU_ROTATE_ID,     0, "Rotate");
        menu.add(0, MENU_COMBO_ID,      0, "Combo");
        menu.add(0, MENU_QUIT_ID,       0, "Вихід");

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Animation startAnim = null;
        switch (item.getItemId()) {
            case MENU_ALPHA_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
                break;
            case MENU_SCALE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myscle);
                break;
            case MENU_TRANSLATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.matrance);
                break;
            case MENU_ROTATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myrotate);
                break;
            case MENU_COMBO_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.mycombo);
                break;
            case MENU_QUIT_ID:
                finish();
                break;
        }
        tv.startAnimation(startAnim);

/*        switch (item.getItemId()){
           case MENU_QUIT_ID:
            finish();
           break;
        }*/
        return super.onOptionsItemSelected(item);
    }
}
Если что-то не работает - подробно опишите проблему своему коту.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

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

Сообщение klblk » 16 фев 2015, 07:54

Если знаете где ругается, то наверное должны знать и как ругается.
Судя по всему startAnim == null вот он и вылетает. Сделайте после finish() еще и return.

LYOHAHA
Сообщения: 1
Зарегистрирован: 24 мар 2015, 14:40

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

Сообщение LYOHAHA » 24 мар 2015, 14:50

Здравствуйте,
Подскажите можно ли добавить анимацию в приложение.
Например я хочу сделать, что бы обложка альбома в плеере(jetAudio) вращалась.
Прошу прощения, если вопрос не по теме.

Sergiy_GT
Сообщения: 11
Зарегистрирован: 06 апр 2015, 13:09

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

Сообщение Sergiy_GT » 10 апр 2015, 19:45

HizZ писал(а):Господа, подскажите пожалуйста как побороть проблему?
Суть проблемы: я добавил функции контекстного меню в обычное меню + кнопка выхода
но при нажатии на кнопку выход ругается на 109-ю строку

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

package com.hizz.p020_lessons;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.Layout;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.RelativeLayout;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity {

    final int MENU_ALPHA_ID = 1;
    final int MENU_SCALE_ID = 2;
    final int MENU_TRANSLATE_ID = 3;
    final int MENU_ROTATE_ID = 4;
    final int MENU_COMBO_ID = 5;
    final int MENU_QUIT_ID = 6;
    TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tv = (TextView) findViewById(R.id.tV);
        registerForContextMenu(tv);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        switch (v.getId()){
            case R.id.tV:
                menu.add(0, MENU_ALPHA_ID,      0, "Alpha");
                menu.add(0, MENU_SCALE_ID,      0, "Scale");
                menu.add(0, MENU_TRANSLATE_ID,  0, "Trans");
                menu.add(0, MENU_ROTATE_ID,     0, "Rotate");
                menu.add(0, MENU_COMBO_ID,      0, "Combo");
//                menu.add(0, MENU_QUIT_ID,       0, "Вихід");
        }
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        Animation startAnim = null;
        switch (item.getItemId()){
            case MENU_ALPHA_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
                break;
            case MENU_SCALE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myscle);
                break;
            case MENU_TRANSLATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.matrance);
                break;
            case MENU_ROTATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myrotate);
                break;
            case MENU_COMBO_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.mycombo);
                break;
        }
        tv.startAnimation(startAnim);
        return super.onContextItemSelected(item);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        menu.add(0, MENU_ALPHA_ID,      0, "Alpha");
        menu.add(0, MENU_SCALE_ID,      0, "Scale");
        menu.add(0, MENU_TRANSLATE_ID,  0, "Trans");
        menu.add(0, MENU_ROTATE_ID,     0, "Rotate");
        menu.add(0, MENU_COMBO_ID,      0, "Combo");
        menu.add(0, MENU_QUIT_ID,       0, "Вихід");

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Animation startAnim = null;
        switch (item.getItemId()) {
            case MENU_ALPHA_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
                break;
            case MENU_SCALE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myscle);
                break;
            case MENU_TRANSLATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.matrance);
                break;
            case MENU_ROTATE_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.myrotate);
                break;
            case MENU_COMBO_ID:
                startAnim = AnimationUtils.loadAnimation(this, R.anim.mycombo);
                break;
            case MENU_QUIT_ID:
                finish();
                break;
        }
        tv.startAnimation(startAnim);

/*        switch (item.getItemId()){
           case MENU_QUIT_ID:
            finish();
           break;
        }*/
        return super.onOptionsItemSelected(item);
    }
}
поставь v.startAnimation(startAnim);
после каждой строки startAnim = AnimationUtils.loadAnimation
должно помочь

RuslanLion
Сообщения: 6
Зарегистрирован: 14 май 2015, 21:48

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

Сообщение RuslanLion » 02 июн 2015, 17:34

Подскажите пожалуйста как зделать чтобы при нажатии Button менялась анимация в TextViev?

twt494
Сообщения: 2
Зарегистрирован: 07 июл 2015, 11:36

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

Сообщение twt494 » 07 июл 2015, 11:44

<?xml version="1.0"encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android">

<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>

что не так? AndroidStudio видает ошибку
Error:(1) Error parsing XML: XML declaration not well-formed
и подчеркивает эту строку
<?xml version="1.0"encoding="utf-8"?>
а до этого красным был
xmlns:android="http://schemas.android.com/apk/res/android"

в чем проблема?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

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

Сообщение doter.ua » 07 июл 2015, 12:09

twt494 писал(а):<?xml version="1.0"encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android">

<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>

что не так? AndroidStudio видает ошибку
Error:(1) Error parsing XML: XML declaration not well-formed
и подчеркивает эту строку
<?xml version="1.0"encoding="utf-8"?>
а до этого красным был
xmlns:android="http://schemas.android.com/apk/res/android"

в чем проблема?

http://stackoverflow.com/a/13562665/3737860 сравни
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Sasha2dx
Сообщения: 51
Зарегистрирован: 10 апр 2015, 23:24

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

Сообщение Sasha2dx » 11 июл 2015, 08:26

Хочу сделать что бы две анимации шли по очереди, но они почему то всегда накладываются друг на друга, что не так?

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

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:ordering="sequentially">

    <scale
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromXScale="0.7"
        android:toXScale="1.1"
        android:fromYScale="0.7"
        android:toYScale="1.1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="1000"
        android:repeatCount="infinite"
        >
    </scale>
    <scale
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromXScale="1.1"
        android:toXScale="0.7"
        android:fromYScale="1.1"
        android:toYScale="0.7"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="1000"
        android:repeatCount="infinite">

    </scale>

</set>

Sasha2dx
Сообщения: 51
Зарегистрирован: 10 апр 2015, 23:24

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

Сообщение Sasha2dx » 11 июл 2015, 17:52

Нагуглил, что android:ordering вроде больше не работает с определённого времени... Но как тогда реализовать подобную анимацию, что бы она работала бесконечно?

dassad
Сообщения: 8
Зарегистрирован: 20 дек 2015, 00:03

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

Сообщение dassad » 07 фев 2016, 00:52

а может все-таки написать новый урок по анимации, как никак 3-4 года прошло, уже много чего добавилось и улучшилось?
и кроме того хотелось бы кодить напрямую из джавы без всяких махинаций с xml - а там куча всяких методов, где по каким-то причинам не работают казалось бы очевидные вещи.

Ответить