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

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

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

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

13.08.2015, 13:19. Просмотров 326. Ответов 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
Здравствуйте. Сразу к проблеме. Добавил в drawabel-hdpi(150x150) и drawabel-xhdpi(400x400). По идеи должно для Nexus 7 браться...

Drawable - Программирование Android
Короч, перетащил xml файлы drawable и values в проект. Как перетащить внутренность hdpi - xxhdpi папок? Создаю новую директорию с...

Работа с Drawable - Программирование Android
Закинул в res/drawable картинку png (1000×1000 30кб), ставлю ее на linear layout: linearlayout.setBackground (getResources ().getDrawable...

Загрузить картинку в Drawable - Программирование Android
И так. Смотрите, дефолтные картинки я кидаю в Draweable. И их от туда беру. Как бы мне взять картинку динамически? Ну смотрите,...

Icon в Drawable возможно? - Программирование Android
Возможно ли перевести Icon в Drawable? Есть пакет FontAwesome.Icon, могу ли я использовать его например для android:drawableRight=&quot;&quot;? ...

Drawable and screen resolution - Программирование Android
Много прочитал всего по данному вопросу, но непонятности все таки меня не оставили. Собственно вопрос: Имею картинку для фона и хочу...

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

Создание Drawable shape, rectange - Программирование Android
Как сделать бордеры? след код ставит в бэкраунд полоску по центру:)... как ее сделать чтобы например с левой части контрола была, с...

Динамическое создание drawable-ресурса - Программирование Android
Доброго всем времени суток! Подскажите пожалуйста, возможно ли реализовать следующую задачу: Необходимо привязать к...

Разместить Drawable посередине EditText - Программирование Android
Привет всем! Как разместить Drawable посередине в EditText? &lt;View android:layout_width=&quot;wrap_content&quot; ...

Как принудительно выбрать drawable - Программирование Android
Вопрос в следующем, есть 4 drawable: drawable, drawable-hdpi, drawable-ldpi, drawable-mdpi В зависимости от разрешения экрана Android сам...

Не используются иконки из drawable-xxxhdpi - Программирование Android
Здравствуйте, я только начал осваивать андройд поэтому извините за возможно глупый вопрос. Поиски решения проблемы в интернете к...


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

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

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