Форум программистов, компьютерный форум CyberForum.ru

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

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

Сравнить drawable в ImageView с картинкой из папки res/drawable одинаковые они или нет? - Android

13.08.2015, 13:19. Просмотров 285. Ответов 0
Метки нет (Все метки)

Пишу пятнашки. После того, как собрал всё по порядку нужно проверить последовательность и написать "Вы выйграли!".
Каждая ячейка это ImageView с картинкой из папки res/drawable.
Пятнашки работают, но проверку сделать не могу.

Проверяю пока только 2 элемента из 16.
Строка 106 НЕ РАБОТАЕТ! Не пойму как это записать.

ПОЖАЛУЙСТА ПОМОГИТЕ!!!

Вот код:
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
112
113
114
115
116
public class Main extends Activity implements View.OnClickListener {
 
    ImageView view01;
    ImageView view02;
    ImageView view03;
    ImageView view04;
    ImageView view05;
    ImageView view06;
    ImageView view07;
    ImageView view08;
    ImageView view09;
    ImageView view10;
    ImageView view11;
    ImageView view12;
    ImageView view13;
    ImageView view14;
    ImageView view15;
    ImageView view16;
 
    ImageView[] mas = new ImageView[16];
 
    TextView textView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);
 
        textView = (TextView) findViewById(R.id.textView);
 
        view01 = (ImageView) findViewById(R.id.number01);
        view02 = (ImageView) findViewById(R.id.number02);
        view03 = (ImageView) findViewById(R.id.number03);
        view04 = (ImageView) findViewById(R.id.number04);
        view05 = (ImageView) findViewById(R.id.number05);
        view06 = (ImageView) findViewById(R.id.number06);
        view07 = (ImageView) findViewById(R.id.number07);
        view08 = (ImageView) findViewById(R.id.number08);
        view09 = (ImageView) findViewById(R.id.number09);
        view10 = (ImageView) findViewById(R.id.number10);
        view11 = (ImageView) findViewById(R.id.number11);
        view12 = (ImageView) findViewById(R.id.number12);
        view13 = (ImageView) findViewById(R.id.number13);
        view14 = (ImageView) findViewById(R.id.number14);
        view15 = (ImageView) findViewById(R.id.number15);
        view16 = (ImageView) findViewById(R.id.number16);
 
        mas[0] = view01;
        mas[1] = view02;
        mas[2] = view03;
        mas[3] = view04;
        mas[4] = view05;
        mas[5] = view06;
        mas[6] = view07;
        mas[7] = view08;
        mas[8] = view09;
        mas[9] = view10;
        mas[10] = view11;
        mas[11] = view12;
        mas[12] = view13;
        mas[13] = view14;
        mas[14] = view15;
        mas[15] = view16;
 
        for (int i = 0; i < 16; i++) {
            final int finalI = i;
            mas[i].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
 
                    if (finalI != 3 && finalI != 7 && finalI != 11 && finalI != 15) {
                        if (mas[finalI + 1].getDrawable() == null) {
                            mas[finalI + 1].setImageDrawable(mas[finalI].getDrawable());
                            mas[finalI].setImageDrawable(null);
                        }
                    }
 
                    if (finalI != 0 && finalI != 4 && finalI != 8 && finalI != 12) {
                        if (mas[finalI - 1].getDrawable() == null) {
                            mas[finalI - 1].setImageDrawable(mas[finalI].getDrawable());
                            mas[finalI].setImageDrawable(null);
                        }
                    }
 
                    if (finalI != 12 && finalI != 13 && finalI != 14 && finalI != 15) {
                        if (mas[finalI + 4].getDrawable() == null) {
                            mas[finalI + 4].setImageDrawable(mas[finalI].getDrawable());
                            mas[finalI].setImageDrawable(null);
                        }
                    }
 
                    if (finalI != 0 && finalI != 1 && finalI != 2 && finalI != 3) {
                        if (mas[finalI - 4].getDrawable() == null) {
                            mas[finalI - 4].setImageDrawable(mas[finalI].getDrawable());
                            mas[finalI].setImageDrawable(null);
                        }
                    }
                    winner();
                }
            });
        }
    }
 
    public void winner() {
        if (
                mas[0].getDrawable().equals(getResources().getDrawable(R.drawable.number01)) &&
                mas[15].getDrawable() == null
                ) {
            textView.setText("Вы выйграли!");
        }
    }
 
    @Override
    public void onClick(View v) {
    }
}
Добавлено через 1 час 16 минут
Придумал сам, создал второй массив Drawable куда и записал нужный порядок, а потом просто сравнил 2 массива
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2015, 13:19     Сравнить drawable в ImageView с картинкой из папки res/drawable одинаковые они или нет?
Посмотрите здесь:

Как принудительно выбрать drawable Android
Android Масштабирование картинок из drawable
Android Отличия drawable от Bitmap
Drawable поверх imageView Android
Android Ссылка на изображение drawable
Папки Drawable Android
Android Drawable and screen resolution
Загрузить картинку в Drawable Android
Создание Drawable shape, rectange Android
Работа с Drawable Android
Android Icon в Drawable возможно?
Android Drawable

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 10:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru