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

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

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

Разместить 16 квадратов одним большим - Программирование Android

03.01.2016, 20:41. Просмотров 294. Ответов 6
Метки нет (Все метки)

Нужно из 16 квадратов образовать поле. Вроде пятнашек. У кого-то есть шаблончик для layout? Чтоб покрасивей, а то я в верстке и дизайне не очень пока... нужно чтоб красиво выглядело, а у меня все в белых стыках.... в общем помогите из 16 имейдж вью сделать красивый квадрат.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2016, 20:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разместить 16 квадратов одним большим (Программирование Android):

Сайты с большим тИЦ: где можно бесплатно разместить ссылку? - Yandex
Здравствуйте! Подскажите пожалуйста сайты с большим тИЦ где можно бесплатно разместить ссылку своего сайта? К примеру, на Ютубе (тИЦ...

Задачка из теста с одним сопротивлением, одним ЭДС и одним источником тока - Электричество и магнетизм
Совсем не пойму, что делать, если считаю ток по закону Ома, то получается, что не учитываю источник тока... Дано: E=10 B I=0.5 A ...

Приложение, которое строит ряд квадратов. Центр квадратов совпадает с центром экрана - C#
Напишите приложение, которое строит ряд квадратов. Центр квадратов совпадает с центром экрана. Число квадратов задается при первом ...

Есть ли четыре последовательных числа, сумма квадратов которых равна сумме квадратов трёх следующих чисел. - Visual Basic
Определить, существуют ли такие четыре последовательных натуральных числа, сумма квадратов которых равна сумме квадратов трёх следующих...

Подпрограммы. Найти пять чисел, чтобы сумма квадратов наибольших равнялась сумме квадратов трех остальных - Pascal ABC
Попытайтесь найти пять идущих подряд целых чисел, таких, чтобы сумма квадратов двух наибольших из них равнялась сумме квадратов трех...

На прямоугольнике размещено максимально возможное количество квадратов. Найти количество квадратов и площадь незанятой части прямоугольника - Pascal ABC
1.Даны целые положительные числа A,B,C. На прямоугольнике размером A х B размещено максимально возможное количество квадратов со стороной C...

6
san92der
14 / 14 / 3
Регистрация: 27.10.2012
Сообщений: 109
04.01.2016, 05:10 #2
Эм. а что значит красиво? а что значит образовать поле? а что значит всё в белых стыках? что значит шаблончик для layout? что значит красивый квадрат?
0
Dimitrii
1 / 1 / 0
Регистрация: 20.04.2013
Сообщений: 185
04.01.2016, 11:35  [ТС] #3
вот так как то. 16 квадратов плотно прилегают и не налазят друг на друга. Желательно с масштабированием в зависимости от размеров экрана. Если без него-понятно что тупо позиции высчитать можно по иксу и игреку каждому, но при смене устройства...эм... не очень эстетично выглядит.
0
Миниатюры
Разместить 16 квадратов одним большим  
Pablito
2505 / 1989 / 619
Регистрация: 12.05.2014
Сообщений: 6,943
Завершенные тесты: 1
04.01.2016, 11:57 #4
что делать если экран устройства не квадратный?
0
Dimitrii
1 / 1 / 0
Регистрация: 20.04.2013
Сообщений: 185
04.01.2016, 12:38  [ТС] #5
в центр поставить квадрат, увеличить по меньшей стороне....
0
Pablito
2505 / 1989 / 619
Регистрация: 12.05.2014
Сообщений: 6,943
Завершенные тесты: 1
04.01.2016, 12:48 #6
как вариант сделать свой лаяут как предлагают тут
Квадратный Layout
а дальше либо его использовать как контейтер для квадратов (LinearLayout-ы с одинаковыми весами)
либо из этого кастомного лаяута и делать все квадратики
0
Pablito
2505 / 1989 / 619
Регистрация: 12.05.2014
Сообщений: 6,943
Завершенные тесты: 1
06.01.2016, 19:54 #7
Так как вопрос про квадратные лаяуты поднимается не первый раз, я немного поднапрягся и сделал.
Только xml, никакого кода.

Кое какие строки добавлены для наглядности и я немного попытался отрефакторить xml (стили).
Так как непонятно из чего должны состоять те 16 квадратов, я решил сделать их кнопками. В разметке будет показан отдельно сам квадратный лаяут и в него includ-ом включен лаяут с кнопками (сильно не рефакторил).

Что бы понять ход моей мысли, попытайтесь не читать по диагонали, а делать по пунктам
Итак:

1. в файл build.gradle подключаем PercentFrameLayout
XML
1
compile 'com.android.support:percent:23.1.1'
2. Приготовим стиль для наших кнопок. В файл values/styles.xml добавляем
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
    <style name="MyAwesomeButton" parent="@style/Widget.AppCompat.Button.Borderless">
        <item name="android:layout_weight">1</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:background">#FFF</item>
        <item name="android:layout_margin">1dp</item>
    </style>

Цвет фона и margin добавил для наглядности, их можно убрать потом.

3. Теперь важно, внимательно! В папке res/values создаем файл square_layout_style.xml и копируем туда эти строки
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <style name="SquareStyle">
        <item name="layout_widthPercent">@fraction/hundred_percent</item>
        <item name="layout_aspectRatio">@fraction/hundred_percent</item>
 
        //эти строчки можно убрать, они для наглядности
        <item name="android:background">#5a7</item>
        <item name="android:layout_gravity">center</item>
    </style>
</resources>


4. Тоже важно! Рядом с папкой values надо создать папку для горизонтальной ориентации, назовем ее values-land

5. Копируем туда файл square_layout_style.xml (который мы создали на прошлом шаге в папке values)
Дожно получиться так
Кликните здесь для просмотра всего текста
Название: Untitled.png
Просмотров: 19

Размер: 5.0 Кб


6. Открываем файл square_layout_style.xml из папки values-land и немного меняем содержимое, а точнее одну строку, но лучше просто копируем код
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <style name="SquareStyle">
        <item name="layout_heightPercent">@fraction/hundred_percent</item>
        <item name="layout_aspectRatio">@fraction/hundred_percent</item>
 
        //эти строчки можно убрать, они для наглядности
        <item name="android:background">#5a7</item>
        <item name="android:layout_gravity">center</item>
    </style>
</resources>

Становится очевидно что разница только в том что для ландшафтной ориентации мы задаем размер лаута 100% по высоте. А в файле values для портретной ориентации мы задали 100% по ширине.

7. Теперь задаем сами размеры. В папке values, создаем файл fractions.xml и копиреум туда этот код
Кликните здесь для просмотра всего текста
XML
1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <fraction name="hundred_percent">100%</fraction>
</resources>


8. И напоследок файл с 16-ю кнопками. Там ничего интересного, но без него не взлетит.
Кликните здесь для просмотра всего текста
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
 
    <LinearLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="1" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="2" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="3" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="4" />
 
    </LinearLayout>
 
    <LinearLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="5" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="6" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="7" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="8" />
 
    </LinearLayout>
 
    <LinearLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="9" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="10" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="11" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="12" />
 
    </LinearLayout>
 
    <LinearLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="13" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="14" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="15" />
 
        <Button
            style="@style/MyAwesomeButton"
            android:text="16" />
 
    </LinearLayout>
 
</LinearLayout>


10. Чуть не забыл )
Разметка активити, обычно это файл activity_main.xml
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<android.support.percent.PercentFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <FrameLayout
        style="@style/SquareStyle">
 
        <include layout="@layout/sixteen_squares"/>
 
    </FrameLayout>
 
</android.support.percent.PercentFrameLayout>

Без разницы где в разметке будет эта конструкция. Для простоты я убрал все остальные лаяуты и тулбар, но это не принципиально.

У меня в студии превьюшка не всегда перерисовывается, поэтому либо нажимаем refresh либо смотрим на в превью, а на устройстве.

11. PROFIT
1
06.01.2016, 19:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2016, 19:54
Привет! Вот еще темы с ответами:

Найти количество комбинаций, в которых сумма квадратов разрядов минут равна сумме квадратов разрядов секунд - Delphi
.Секундомер отмерял 6458 секунд. Найти количество комбинаций, в которых сумма квадратов разрядов минут равна сумме квадратов разрядов секунд

Найти константы аппроксимации, сумму квадратов отклонений и трехмерное отображение суммы квадратов отклонений - Matlab
Подскажите пожалуйста:help::help::help:, кто знает, все ли правильно правильно:-' y = ' Нужно найти константы аппроксимации, сумму...

Подсчитать сумму квадратов четных и сумму квадратов нечетных элементов массива - C++
Сформировать в программе массив из целых чисел от 2 до N. Подсчитать сумму квадpатов четных и сумму квадратов нечетных чисел.

Подсчитать сумму квадратов четных и сумму квадратов нечетных чисел - C++
1. Дан массив A размера N. Вывести его элементы в следующем порядке: A1, AN, A2, AN–1, A3, AN–2, … . #include&lt;iostream.h&gt; void...


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

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

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