Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Vladimir99
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
#1

Растворение фона - Программирование Android

31.05.2015, 14:27. Просмотров 218. Ответов 5
Метки нет (Все метки)

Я сделал программу наподобие хаотичного движения газов, и мне нужно чтобы при запуске они растворялись(увеличивали свою прозрачность). У меня все вышло,только после их растворения они снова становятся полностью непрозрачными и процесс повторяется(Попробовал ограничить условием в цикле перебора шариков(alpha[i]<=0) { break}, но выходит что при запуске все уже растворилось и анимации нету(Подскажите, что не так.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package com.example.android19anim1;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.CountDownTimer;
import android.view.View;
 
public class MyDraw extends View {
    static int n = 15;
    static boolean started;
    int[] x = new int[n];
    int[] y = new int[n];
    int[] vx = new int[n];
    int[] vy = new int[n];
    int[] color1 = new int[n];
    int[] color2 = new int[n];
    int[] color3 = new int[n];
    static int[] alpha=new int [n];
 
    int random(int min, int max) {
        return (int) (min + Math.random() * (max + 1));
    }
 
    void fillArrayRandom(int[] a, int min, int max) {
        for (int i = 0; i < a.length; i++) {
            a[i] = random(min, max);
        }
    }
 
    void makeBalls() {
        fillArrayRandom(x, 0, this.getWidth());
        fillArrayRandom(y, 0, this.getHeight());
        fillArrayRandom(vx, -10, 50);
        fillArrayRandom(vy, -10, 50);
        fillArrayRandom(color1, 0, 255);
        fillArrayRandom(color2, 0, 255);
        fillArrayRandom(color3, 0, 255);
    }
 
    void moveBalls() {
        for (int i = 0; i < n; i++) {
            if ((x[i] < 0) || (x[i] > this.getWidth())) {
                vx[i] = -vx[i];
            }
            if ((y[i] < 0) || (y[i] > this.getHeight())) {
                vy[i] = -vy[i];
            }
            x[i] += vx[i];
            y[i] += vy[i];
            alpha[i]-=1;
            if(alpha[i]<=0) {
                break;
            }
            }
        }
    
 
    public MyDraw(Context context) {
        super(context);
        MyTimer timer = new MyTimer();
        timer.start();
    }
 
    protected void onDraw(Canvas canvas) {
        if (!started) {
            makeBalls();
            started = true;
        }
        Paint paint = new Paint();
        for (int i = 0; i < n; i++) {
            canvas.drawCircle(x[i], y[i], 20, paint);
            paint.setColor(Color.argb(alpha[i],color1[i], color2[i], color3[i]));
        }
 
    }
 
    void nextFrame() {
        moveBalls();
        invalidate();
    }
 
    // public static Scanner scan = new Scanner(System.in);
    //
    // public static void main(String[] args) {
    // System.out.println("Введите колличество шариков");
    // n = scan.nextInt();
    // }
 
    class MyTimer extends CountDownTimer {
 
        MyTimer() {
            super(1000000, 100);
        }
 
        @Override
        public void onTick(long millisUntilFinished) {
            nextFrame();
 
        }
 
        @Override
        public void onFinish() {
            // TODO Auto-generated method stub
 
        }
 
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2015, 14:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Растворение фона (Программирование Android):

Постепенное растворение фона - Программирование Android
У меня не получается постепенно растворять цвет.В программе указал увеличение цвета на 10, используя массив color1,color2 и color3 через...

Смена фона - Программирование Android
Появилась нужда в смене фона через настройки, не подскажете как это делается? Пишу tw.setBackgroundResource(R.layout.black_bg); для того...

Установка заднего фона - Программирование Android
Здравствуйте. Как сделать выбор заднего фона для Activity из галереи смартфона? Добавлено через 1 минуту И нужно ли будет для этого...

Установка заднего фона - Программирование Android
Здравствуйте! У меня вопрос насчёт заднего фона. Как сделать чтобы изображение не растягивалось &quot;как ему вздумается&quot;? Есть простой xml...

Изменение фона активности - Программирование Android
Здравствуйте, посетители форума! Захотел поменять фон активности. Добавил в RelativeLayout атрибут background=&quot;@drawable/bg&quot; - не...

Смена фона layout - Программирование Android
Мне необходимо реализовать смену фона layout. Например существует два layout в main_activity, id которых lay1 и lay2 . Как мне сделать так...

5
Mikalai
262 / 238 / 95
Регистрация: 11.01.2015
Сообщений: 666
31.05.2015, 15:06 #2
Попробуй вместо
Java
1
2
3
4
            alpha[i]-=1;
            if(alpha[i]<=0) {
                break;
            }
написать

Java
1
2
3
            if(alpha[i] > -1) {
                alpha[i]-=1;
            }
0
Vladimir99
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
31.05.2015, 15:15  [ТС] #3
ничего не выходит..даже прозрачность не меняется.Программа походу не может выполнить условие
0
Mikalai
262 / 238 / 95
Регистрация: 11.01.2015
Сообщений: 666
31.05.2015, 15:27 #4
Выложи тот вариант где у тебя всё работало, но потом становилось опять не прозрачным.
0
Vladimir99
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 22
31.05.2015, 15:51  [ТС] #5
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package com.example.android19anim1;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.CountDownTimer;
import android.view.View;
 
public class MyDraw extends View {
    static int n = 15;
    static boolean started;
    int[] x = new int[n];
    int[] y = new int[n];
    int[] vx = new int[n];
    int[] vy = new int[n];
    int[] color1 = new int[n];
    int[] color2 = new int[n];
    int[] color3 = new int[n];
    static int[] alpha=new int [n];
 
    int random(int min, int max) {
        return (int) (min + Math.random() * (max + 1));
    }
 
    void fillArrayRandom(int[] a, int min, int max) {
        for (int i = 0; i < a.length; i++) {
            a[i] = random(min, max);
        }
    }
 
    void makeBalls() {
        fillArrayRandom(x, 0, this.getWidth());
        fillArrayRandom(y, 0, this.getHeight());
        fillArrayRandom(vx, -10, 50);
        fillArrayRandom(vy, -10, 50);
        fillArrayRandom(color1, 0, 255);
        fillArrayRandom(color2, 0, 255);
        fillArrayRandom(color3, 0, 255);
    }
 
    void moveBalls() {
        for (int i = 0; i < n; i++) {
            if ((x[i] < 0) || (x[i] > this.getWidth())) {
                vx[i] = -vx[i];
            }
            if ((y[i] < 0) || (y[i] > this.getHeight())) {
                vy[i] = -vy[i];
            }
            x[i] += vx[i];
            y[i] += vy[i];
            alpha[i]-=1;
            if(alpha[i]<=0) {
                break;
            }
            }
        }
    
 
    public MyDraw(Context context) {
        super(context);
        MyTimer timer = new MyTimer();
        timer.start();
    }
 
    protected void onDraw(Canvas canvas) {
        if (!started) {
            makeBalls();
            started = true;
        }
        Paint paint = new Paint();
        for (int i = 0; i < n; i++) {
            canvas.drawCircle(x[i], y[i], 20, paint);
            paint.setColor(Color.argb(alpha[i],color1[i], color2[i], color3[i]));
        }
 
    }
 
    void nextFrame() {
        moveBalls();
        invalidate();
    }
 
    // public static Scanner scan = new Scanner(System.in);
    //
    // public static void main(String[] args) {
    // System.out.println("Введите колличество шариков");
    // n = scan.nextInt();
    // }
 
    class MyTimer extends CountDownTimer {
 
        MyTimer() {
            super(1000000, 100);
        }
 
        @Override
        public void onTick(long millisUntilFinished) {
            nextFrame();
 
        }
 
        @Override
        public void onFinish() {
            // TODO Auto-generated method stub
 
        }
 
    }
 
}
0
Pablito
31.05.2015, 16:00     Растворение фона
  #6

Не по теме:

я ответил, но правда в другом разделе

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2015, 16:00
Привет! Вот еще темы с ответами:

Установка фона кнопке - Программирование Android
Добрый день, хочу поставить на кнопку картинку, загрузив из папки mipmap, но студия ругается тут getDrawable(R.mipmap.derev_okno1) говорит...

Растянуть картинку заднего фона - Программирование Android
есть xml &lt;TableRow xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:layout_height=&quot;wrap_content&quot; ...

Переброс переменных из фона в актив - Программирование Android
вечер добрый. суть проблемы такова. у меян есть класс, который занимается мат работой, и есть актив, с своим классом, где нужно из...

Смена фона (картинки) по времени - Программирование Android
Добрый день! Подскажите, как сделать смену фона активити по времени автомиатически? К примеру с 9:00 - 21:00 - одно изображение, а с 21:00...


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

Или воспользуйтесь поиском по форуму:
6
31.05.2015, 16:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru