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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
#1

GridView: выравнивание колонок по центру - Программирование Android

04.03.2014, 10:22. Просмотров 1887. Ответов 9
Метки нет (Все метки)

Код MainActivity.java:
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
public class MainActivity extends Activity {
    
    String[] data = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
    
    GridView gridView1;
    ArrayAdapter<String> adapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
 
        adapter = new ArrayAdapter<String>(this, R.layout.item, R.id.tvText, data);
        gridView1 = (GridView) findViewById(R.id.gridView1);
        gridView1.setAdapter(adapter);
               adjustGridView();
        
    }
    
    private void adjustGridView() {
        gridView1.setNumColumns(5);
        tvText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
      }
}
Код activity_main.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:numColumns="5"
        android:stretchMode="columnWidth" >
 
    </GridView>
 
</RelativeLayout>
Код item.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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:background="@drawable/rect"
    android:orientation="vertical">
 
<TextView
    android:id="@+id/tvText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:minHeight="40dp"
    android:textSize="70sp"
    android:text="">
</TextView>
 
</LinearLayout>
Как, собственно, сделать так, чтобы текст, расположенный внутри колонки / ячейки был по центру, а не справа? Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 10:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос GridView: выравнивание колонок по центру (Программирование Android):

Какой тег отвечает за выравнивание по центру текста? - Программирование Android
Есть переменная типа String, в ней большой текст. Этот текст присваивается textView. Как выровнять по центру частичку этого большего...

Форматирование колонок в GridView - C# ASP.NET
Как настроить направление отображения текста (LTR или RTL) в колонках GridView? Нашел только HorisontalAlign, а вот Dir или Direction...

Верстка и ширина колонок GridView - C# ASP.NET
Здравствуйте, у меня глупый вопрос, но всё же На странице расположен GridView, в нём много колонок. Он находится внутри блока div c...

Редактирование и сокрытие колонок в GridView - C# ASP.NET
Доброго времени суток всем! На странице лежит GridView, которму присваивается DataSource из DataTable. Все отображается, все хорошо. ...

Добавление в gridView данных из нескольких колонок БД - C# ASP.NET
подскажите можно ли в gridview добавлять данніе из нескольких колонок базі данніх? т.е. наприммер в базе есть таблица с полями міло и...

Выравнивание по центру - HTML, CSS
привет, помогите чтобы текст по центру писался........ уже час не могу исправить.. http://jsfiddle.net/vN62G/ Добавлено через 9...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
04.03.2014, 10:57 #2
Цитата Сообщение от FazonFix Посмотреть сообщение
Как, собственно, сделать так, чтобы текст, расположенный внутри колонки / ячейки был по центру, а не справа?
Замените содержимое файла item.xml на:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/rect" >
 
   <TextView
        android:id="@+id/tvText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:minHeight="40dp"
        android:textSize="70sp" />
 
</RelativeLayout>
0
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
04.03.2014, 14:10  [ТС] #3
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/rect" >

<TextView
android:id="@+id/tvText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:minHeight="40dp"
android:textSize="70sp" />

</RelativeLayout>
К сожалению, это не помогло. Текст как был слева, так и остался. Вот скриншот:
s52 .radikal .ru/i138/1403/3b/7f0291d0772e.png (пробелы убрать).

Быть можно нужно внутри самой программы назначить так, чтобы TextView выравнивался по центру внутри ячейки?
0
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
04.03.2014, 14:34 #4
Цитата Сообщение от FazonFix Посмотреть сообщение
К сожалению, это не помогло.
Может быть это проблема эмулятора? На настоящем устройстве (Android 4.1) всё работает прекрасно:
GridView: выравнивание колонок по центру
0
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
05.03.2014, 17:33  [ТС] #5
Может быть это проблема эмулятора? На настоящем устройстве (Android 4.1) всё работает прекрасно
К сожалению, проблема осталась. Пробовал на реальном устройстве (планшет, не знаю какой фирмы) и на эмуляторе - всё равно выравнивание по левому краю. Может быть вы мне что-то не дописали (в исходном коде программы, а не в XML, например, т. к. я использую адаптер и вывожу из массива данные) или есть другие способы?
0
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
05.03.2014, 20:38 #6
Цитата Сообщение от FazonFix Посмотреть сообщение
Может быть вы мне что-то не дописали
Исключено, вот только сейчас проделал все с нуля на другом компьютере. ну разве что закомментировал строчку
Java
1
tvText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
но она тут не при чем. На всякий случай я приложил архив со своим (точнее вашим ) проектом. В папке bin вы можете найти уже готовый apk файл чтоб проверить побыстрому.
OneMoreTest.rar
0
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
06.03.2014, 14:18  [ТС] #7
Так и не проверил твой проект. Но меня больше интересует другая вещь: у меня в item.xml вылазит предупреждение. Что это может быть и как от этого избавиться?
0
Миниатюры
GridView: выравнивание колонок по центру  
angryrobot
Командир зеленых роботов
347 / 284 / 53
Регистрация: 08.10.2013
Сообщений: 564
06.03.2014, 14:26 #8
Цитата Сообщение от FazonFix Посмотреть сообщение
Что это может быть и как от этого избавиться?
Предупреждение потому, что этих двух строчек тут быть не должно. Ваш TextView находится внутри контейнера LinearLayout, а он не поддерживает выравнивание содержащихся внутри него элементов, по центру
0
FazonFix
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
07.03.2014, 16:32  [ТС] #9
Наконец-то сделал. Случайным образом ввёл параметр android:layout_gravity в TextView. Выкладываю, если кто-то будет страдать таким же вопросом.

Содержимое item.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#18A608" >
    
<TextView
    android:id="@+id/tvText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:minHeight="40dp"
    android:textSize="30sp" >
</TextView>
 
</LinearLayout>

------------------------------------------------------------

И ещё один вопрос:

Вот у меня есть матрица смежности, сделанная посредством GridView, размером 3x3. Как сделать так, чтобы когда я нажимаю на ячейку с id равным 2 (если размер 3x3, то это первый ряд, третья ячейка), то она загоралась не стандартным серым цветом, а, к примеру, зелёным, а все остальные - синим?

В теге LinearLayout файла item.xml есть параметр android:background со значением #18A608:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#18A608" >
    
<TextView
    android:id="@+id/tvText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:minHeight="40dp"
    android:textSize="30sp" >
</TextView>
 
</LinearLayout>
Но при таком случае будут все ячейки загораться зелёным цветом, причём они будут зелёным цветом всегда, даже если не трогать пальцем экран. Как решить мою проблему?
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
07.03.2014, 18:32 #10
Цитата Сообщение от FazonFix Посмотреть сообщение
android:background="#18A608
код зеленого цвета )
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2014, 18:32
Привет! Вот еще темы с ответами:

Выравнивание по центру - HTML, CSS
&lt;style type=&quot;text/css&quot;&gt; body{ margin: 0 auto; } .lemon { width: 200px; height: 200px; background:...

Выравнивание по центру - HTML, CSS
Размещаю кнопку для печати страницы, в хроме кнопка показывается по центру страницы, во всех остальных браузерах слева. как решить...

Выравнивание по центру - Java
Суть вот в чем, есть ширина активного окна (допустим пусть будет int width), и есть ширина объекта (int width_obj). Нужно сделать так,...

Выравнивание по центру - Java SE
Не могу сделать так, чтобы панель с кнопка выравнивалась по вертикали. Прошу помочи JFrame jframe = new JFrame(&quot;Button Frame&quot;); ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.03.2014, 18:32
Ответ Создать тему
Опции темы

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