- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
-(void) reloadHelpMessage:(BOOL) _isPortrait
{
//ignoreDisappear = NO;
//ingnoreWillAppear = NO;
if (_isPortrait)
{
helpMessage.frame = CGRectMake(helpMessage.frame.origin.x, helpMessage.frame.origin.y, self.view.bounds.size.width, 175);
for (UIView* sub in [helpMessage subviews])
{
NSLog(@"__%@",[sub description]);
switch (sub.tag)
{
case 1:
sub.frame = CGRectMake(68, 17, 200, 18);
break;
case 2:
sub.frame = CGRectMake(68, 40, self.view.bounds.size.width - 70, 80);
break;
case 3:
sub.frame = CGRectMake(267, 3, 35, 29);
break;
case 4:
sub.frame = CGRectMake(10, 8, 48, 53);
break;
case 5:
sub.frame = CGRectMake(11, 128, roundf((self.view.bounds.size.width - 32)/2), 36);
break;
case 6:
sub.frame = CGRectMake(roundf((self.view.bounds.size.width/2) + 5), 128, roundf((self.view.bounds.size.width - 32)/2), 36);
break;
default:
break;
}
}
}
else
{
helpMessage.frame = CGRectMake(helpMessage.frame.origin.x, helpMessage.frame.origin.y, self.view.frame.size.width, 138);
for (UIView* sub in [helpMessage subviews])
{
NSLog(@"__%@",[sub description]);
switch (sub.tag)
{
case 1:
sub.frame = CGRectMake(68, 17, 200, 18);
break;
case 2:
sub.frame = CGRectMake(68, 40, self.view.bounds.size.width - 80, 40);
break;
case 3:
sub.frame = CGRectMake(400, 3, 35, 29);
break;
case 4:
sub.frame = CGRectMake(10, 8, 48, 53);
break;
case 5:
sub.frame = CGRectMake(11, 91, roundf((self.view.bounds.size.width - 32)/2), 36);
break;
case 6:
sub.frame = CGRectMake(roundf((self.view.bounds.size.width/2) + 5), 91, roundf((self.view.bounds.size.width - 32)/2), 36);
break;
default:
break;
}
}
}
}
byss 14.12.2012 16:49 # 0
bormand 14.12.2012 18:18 # +1
Ня!
> CGRectMake(68, 17, 200, 18);
А как это работает на ифунах с разным разрешением или размером экрана? (Ну хотя это, наверное, не в пикселях, а в независимых от девайса единицах).
krypt 14.12.2012 18:22 # 0
Собственно, у ифунов только 2 разрешения, не ретина и ретина.
tirinox 14.12.2012 20:22 # +1
krypt 14.12.2012 21:07 # 0
psycho-coder 14.12.2012 23:13 # 0
Это как? О_о
Можно подробней?
bormand 14.12.2012 23:51 # +1
psycho-coder 15.12.2012 00:01 # 0
P.S. Напомните, какие цвета текста за что отвечают. Я помню только, зеленый - сарказм.
bormand 15.12.2012 10:21 # +3
Сарказм (впрочем и черным тоже).
Ссылка.
Спойлер
Модерастия.
Пользователю bormand, согласно правилам вынесено предупреждение за обсуждение модератора и/или его действий.
krypt 15.12.2012 13:07 # 0
bormand 15.12.2012 13:16 # +9
krypt 15.12.2012 18:04 # 0
moderator 17.12.2012 19:44 # +3
Ибо гласят правила, не сотвори себе модератора, окроме того что поставлен свыше.
Lure of chaos и krypt - самозванцы. Единственно верный модератор - это я.
LispGovno 17.12.2012 20:14 # 0
scriptin 17.12.2012 23:25 # +2
fix
3.14159265 17.12.2012 14:55 # 0
LispGovno 17.12.2012 15:54 # 0
3.14159265 17.12.2012 16:40 # +3
Та ладно.
Я уже давно почитываю сайт так:
http://pichub.ru/pic_b/12/12/17/c319cbecf89297b2d4743e44bf118ce0.png
krypt 15.12.2012 01:03 # 0
krypt 15.12.2012 01:09 # 0
krypt 15.12.2012 01:01 # 0
Только я по человечески считал сначала, а по программистски :)
psycho-coder 15.12.2012 17:47 # 0
krypt 14.12.2012 18:24 # 0
QuickNick 15.12.2012 12:27 # 0
eth0 14.12.2012 19:52 # 0
Офигенно иметь крайне несильно разнообразные устройства.
bormand 14.12.2012 20:29 # 0
Ага, с ведром и китайским зоопарком на нем хуже.
Там им разрешения экрана пришлось собрать аж в 4 группы - ldpi, mdpi, hdpi и xhdpi (привет, ретина). Да еще и куча дисплеев разного размера, и хоть там все координаты указываются в независящих от разрешения dp, и ведро умеет резиновые лейауты, но лейаут от огромного galaxy tab явно будет смотреться как говно на моем 4" highscreen, и наоборот...
absolut 14.12.2012 20:54 # 0
guest 15.12.2012 22:34 # 0
TarasB 16.12.2012 12:06 # 0
krypt 17.12.2012 12:34 # 0
---
http://www.iphoneresolution.com/
krypt 17.12.2012 12:31 # 0
А ничего, что разрешение у айфона 3 - 320x480 и у 4 - 640x960?
eth0 14.12.2012 22:37 # 0
Или на самом деле всё не так плохо?
bormand 14.12.2012 23:02 # +4
Если не выходить за пределы абстракций, не страдать херней типа "по лейауту на каждый сотик", и внимательно читать доку (хотя бы вводные разделы) - все хорошо ;)
Ну я, конечно, далеко не профи в ведроразработке, всего одна прога, и так пока не закончена - но поддержка разных экранов делается так:
1) Делаем 4 папки с ресурсами, в которые складываем рисунки в разном dpi (можно и одну в mdpi, если насрать на то, что он будет их растягивать).
2) Смотрим, насколько ужасно будут смотреться интерфейсы на экранах разного размера, и делаем пару-тройку лейаутов под разные (к примеру на планшете можно показать все элементы за раз, а на мелком сделать тоже самое вкладками).
Вот и все. Мультитачи там из коробки поддерживаются, я сам офигел, когда кинул на форму 4 слайдера, и смог их катать одновременно и независимо четырмя пальцами.
На процессоры, в принципе, насрать. Если не пишешь высокопроизводительную игрушку. Жаба все-таки.
С операционками очень помогает ведроплагин к эклипсу. Он подсказывает, если случайно поюзал функцию, которая появилась в более свежем sdk, нежели указанный в манифесте. Юзать такие функции, кстати, можно, но тогда нужно проверять версию операционки самому. Ну и там неплохая совместимость - очень мало изменений, которые что-то ломают, в основном просто добавляются новые фишки.
По опыту - собирал под 4.0.3, дал погонять другу на ведре 2.2. Все запустилось, работает, поломалось только уведомление, которое я по дурости написал не дочитав ман. Сделал как по ману - заработало.
P.S. После неудачной попытки покодить под симбиан, где разработка это просто треш угар и содомия - андроид просто прелесть. Очень радует то, что сдк работает в линухе и имеется неплохая документация на офсайте.
eth0 15.12.2012 11:37 # +1
Даже не рискую. Хотя оборудование имеется.
TarasB 15.12.2012 14:01 # 0
Говно не в зоопарке, а в том, что НДК это пиздец лютый.
>NDK...им точно пытают Гитлера в аду, и я не уверен что эта пытка там легальна.
roman-kashitsyn 15.12.2012 14:48 # +2
TarasB 15.12.2012 18:50 # 0
Дело в том, что примеры готовые сами нихера не работают, что ты должен руками заполнять файл сборки, хреносборки и манифест по правилам, которые нигде не указаны и документации по ндк хрен найдёшь, и если ты что-то заполнишь неверно, то просто программа не запустится, да, а ещё в АПИ некоторые функции работают неправильно и ими лучше не пользоваться, приходится какими-то жёсткими костылями эта баги обходить.
bormand 15.12.2012 15:21 # +1
Тарас, ты сам выбрал тернистый крестоблядский путь... Для тех, кто не юзает NDK, кодинг под ведро на порядки проще и приятней.
Причем если я правильно понимаю идею NDK - на нем нужно писать мелкие заоптимизированные по самые яйца функции, которые не прыгают обратно в жабу, а затем уже дергать их из высокоуровневого кода на жабе. Typical good candidates for the NDK are self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing, physics simulation, and so on гласит надпись на страничке NDK.
Если же ты пишешь на крестах высокоуровневую логику, дергая при этом жабоапишки, то твой код мало того что будет выглядеть как сраное говнище, и ты потратишь на его написание дохуя времени, так он еще и всяко работает медленнее, чем тупой код, тупо написанный на яве.
P.S. Я понимаю, что ты хочешь написать кросплатформенную игру, которая будет идти еще и на ПК. Но имхо ты быстрее бы запилил движок на жабе для ведра и движок на чем-то другом для ПК, чем будешь ебаться с "кроссплатформенным" крестоблядским кодом.
roman-kashitsyn 15.12.2012 15:28 # +2
TarasB 15.12.2012 15:51 # +3
inkanus-gray 15.12.2012 16:27 # +1
TarasB 15.12.2012 18:10 # 0
eth0 15.12.2012 16:56 # 0
TarasB 15.12.2012 18:10 # 0
eth0 15.12.2012 21:00 # 0
bormand 15.12.2012 21:21 # +3
NoYaSloPaToy 25.08.2021 08:51 # 0