Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/55: Рейтинг темы: голосов - 55, средняя оценка - 4.76
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650

Как в Android Studio реализовать плавное перемещение изображения?

14.06.2020, 17:28. Показов 11738. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
marginleft в цикле увеличивать для ImageView?
Или задействовать объект Paint?
Был бы признателен за совет или пример.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2020, 17:28
Ответы с готовыми решениями:

Как реализовать плавное изменение местоположения ImageView в RelativeLayout? Android Studio
Хотел бы написать игрушку для ребенка. Как попроще реализовать движение картинки по экрану? Создать таймер и каждые 10 миллисекунд...

Реализовать плавное перемещение картинки
Здравствуйте! У меня к Вам такой вопрос, как сделать так, чтобы добавленная мною картинка спускалась вниз и уходила за пределы экрана. Я...

Подключение изображения как ресурса в проекте в Android studio
Пытаюсь сделать приложение, которое при нажатии на кнопку показывает изображение (изначально скрыто) и воспроизводит аудио-файл. Но...

25
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
14.06.2020, 17:55
https://developer.android.com/training/transitions
1
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
14.06.2020, 20:43  [ТС]
Охренеть простыня на английском (,((,(
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
14.06.2020, 22:01
Это первоисточник, есть и на русском полно.
https://habr.com/ru/post/243363/
1
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
15.06.2020, 03:26  [ТС]
Спасибо, читаю. А нет ли чего-то попроще такого типа?
y=0
x++
point(x,y)

Добавлено через 6 минут
В Delphi просто было - помещаешь изображение на форму и в коде увеличиваешь координату по горизонтали. В Android Studio такого нет?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.06.2020, 12:31
Есть методы setX/setY.
1
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
15.06.2020, 12:36  [ТС]
Для imageView ?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.06.2020, 12:45
Для любого View.

Добавлено через 1 минуту
https://developer.android.com/... etX(float)

Добавлено через 24 секунды
https://developer.android.com/... onX(float)
1
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
15.06.2020, 12:58  [ТС]
Нет такого метода в списке методов этого класса
https://developer.android.com/... View?hl=ru
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
15.06.2020, 13:59
Я прикрепил ссылки на методы.

Добавлено через 41 секунду
Если что:
public class ImageView
extends View
1
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
15.06.2020, 23:52  [ТС]
Спасибо. Странно, что в сети не находятся примеры с этим методом. :-((
0
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
16.06.2020, 00:02  [ТС]
Не получается
Миниатюры
Как в Android Studio реализовать плавное перемещение изображения?  
0
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
16.06.2020, 00:37  [ТС]
Спасибо ещё раз! Заработало вот так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.example.myapplication;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
 
public class MainActivity extends AppCompatActivity {
    android.widget.ImageView ImageView;
    int x = 100;
    int y = 100;
    Drawable d;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView ImageView = (ImageView)findViewById(R.id.imageView);
        ImageView.setX(x);
        ImageView.setY(y);
 
 
    }
 
  //  public class ImageView extends View {}
}
Добавлено через 10 минут
Странно работает цикл. Сначала ожидание несколько секунд, а затем прорисовка изображения в конечной точке.
Как бы сделать чтобы изображение перемещалось в цикле со сдвигом 1 пиксел?

Вот такой цикл работает глючно:
Java
1
2
3
4
5
6
  while (x<400) {
            x++;
            ImageView.setX(x);
            ImageView.setY(y);
            sleep(40);
        }
Полный листинг:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.example.myapplication;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
 
import static android.os.SystemClock.sleep;
 
public class MainActivity extends AppCompatActivity {
    android.widget.ImageView ImageView;
    int x = 100;
    int y = 100;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView ImageView = (ImageView)findViewById(R.id.imageView);
 
 
    while (x<400) {
            x++;
            ImageView.setX(x);
            ImageView.setY(y);
            sleep(40);
        }
 
    }
 
  //  public class ImageView extends View {}
}
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
16.06.2020, 00:55
Готовый, удобный и проверенный вариант для плавной и красивой анимации я привёл в первом сообщении.
0
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
16.06.2020, 01:39  [ТС]
В первом сообщение крайне сложный пример для человека писавшего на Delphi. Там скорее трансформация, так ведь?

Я хочу реализовать перемещение изображения утки. Изображение должно перемещаться слева направо с небольшой скоростью. Но что-то промежуточные позиции не прорисовываются.
Позиция изображения и ширина изображения будет учитываться при обработки нажатия на изображение ружья.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
16.06.2020, 10:36
Ничего сложного там нет, скопипастить несколько строк кода и всё.
Цитата Сообщение от terra nova Посмотреть сообщение
Я хочу реализовать перемещение изображения утки. Изображение должно перемещаться слева направо с небольшой скоростью. Но что-то промежуточные позиции не прорисовываются.
Позиция изображения и ширина изображения будет учитываться при обработки нажатия на изображение ружья.
Я бы в первую очередь рассмотрел вариант c AnimatedDrawable, картинка просто будет зацикленно двигаться, а эффект "попадания" из ружья рассчитывать программно через вероятность или задавать кратные промежутки времени и рассчитывать, где находится картинка, если известно время старта анимации (деление по модулю на длительность анимации). Ну это что первое в голову пришло.
1
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
17.06.2020, 12:48  [ТС]
Скопипастил вот этот код:
Java
1
2
3
4
5
6
7
8
9
  
private void testMove(ImageView target) {
      float translationY = target.getTranslationY();
      float translationX = target.getTranslationX();
      TranslateAnimation animation = new TranslateAnimation(translationX, translationX + 600, translationY, translationY + 100);
      animation.setDuration(TimeUnit.SECONDS.toMillis(2L)); //1sec
      animation.setFillAfter(true);
      target.startAnimation(animation);
}
Затем импортировал два класса - Att+Enter, вызвал testMove(ImageView); из onCreate
0
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
21.06.2020, 15:52  [ТС]
Буду на анимацию перемещения накладывать анимацию смены кадров: Frame animation или как сделать анимацию
Нашел тут Гиф анимация в android studio
0
-161 / 12 / 3
Регистрация: 10.06.2013
Сообщений: 650
14.10.2020, 01:38  [ТС]
ExFau$t , я прочел https://developer.android.com/training/transitions
Я использую Transition, но не могу определить координаты изображения.
Java
1
         y = ImageView2.getTranslationY();
всегда ноль. Что делать?
0
 Аватар для radlif
44 / 44 / 3
Регистрация: 18.12.2011
Сообщений: 577
28.10.2020, 07:23
Цитата Сообщение от terra nova Посмотреть сообщение
Я использую Transition, но не могу определить координаты изображения.
y = ImageView2.getTranslationY();
всегда ноль. Что делать?
Java
1
y = ImageView2.getY();
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2020, 07:23
Помогаю со студенческими работами здесь

Как задать плавное перемещение картинки в PictureBox (или перемещение самого PictureBox) из точки А в точку Б по прямой?
Необходимо задать плавное перемещение по прямой линии из &quot;А&quot; в &quot;Б&quot; по нажатию &quot;Button&quot;

Как сделать плавное перемещение элемента?
Как сделать хотя-бы (если это просто) перемещение допустим кнопки на 100px вправо плавно? Спасибо заранее

Как сделать плавное перемещение MovieClip?
Есть две кнопки слева и справа, и по центру MovieClip. Как сделать плавное перемещение MovieClip код кнопки слева on (rollOver) {...

Как организовать плавное перемещение объекта по форме?
Здравствуйте! Хотел бы попросить у вас помощи с одним заданием. Как можно организовать плавное движение объекта(в моем случае кнопки) по...

Как сделать плавное перемещение нарисованной фигуры по форме?
Здравствуйте, у меня есть задача: Передвижение фигур. Вообщем выполняю её так: создаю стартовую фигуру, указываю куда она должна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru