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

Как создать квадратный TableLayout содержащий 100 ImageView? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Android L: в чем отличие? http://www.cyberforum.ru/android-dev/thread1220891.html
Народ! Кто нибудь ковырял это чудо? СДК другое или такое же? В чем координальные отличия, кроме новой ВМ?
Android Wrap_content в кастомном адаптере Добрый день пытаюсь парсить новости и выводить их в ListView через кастомный адаптер. вот код: public class NewsListAdapter extends BaseListAdapter { protected ArrayList<ItemNews> items; public NewsListAdapter(Context context, ArrayList<ItemNews> items) { super(context, items); } http://www.cyberforum.ru/android-dev/thread1220812.html
Вычитывание байтов из InputStream сокета Bluetooth Android
Создан блютузный сокет, приконнекчен к девайсу, запущен следующий поток: private class ReceiveDataThread extends Thread { public boolean stopThread = false; private InputStream inStream; //private BufferedReader bufferedReader; // not working private StringBuilder receivedString;
Как передать целочисленную переменную и картинку из сервиса в активити? Android
Как передать целочисленную переменную и картинку из сервиса в активити?
Android Android блочит массовую рассылку смс через приложение http://www.cyberforum.ru/android-dev/thread1220711.html
отправляю обычным образом через sendMultipartTextMessage как избежать блокировки? может можно как-то отключить это в настройках самого девайса?
Android LayoutInflater - зачем он нужен? Добрый день! Изучаю Андроид и вот застопорился на одной из тем про LayoutInflater. Дело в том что как я не старался понять автора уроков(http://startandroid.ru/ru/uroki/vse-uroki-spiskom/80-urok-40-layoutinflater-uchimsja-ispolzovat.html вот кстати сам урок) ничего не получалось. Поиск в гугле привел на английские форумы где кое-что поняв так и не удалось мне создать четкое представление о ... подробнее

Показать сообщение отдельно
GukZiLLA
 Аватар для GukZiLLA
35 / 35 / 2
Регистрация: 30.11.2013
Сообщений: 102
02.07.2014, 22:30     Как создать квадратный TableLayout содержащий 100 ImageView?
Новый код, пробуйте и тогда при любых размерах поля N x Y и при любой ориентации экрана всегда все будет масштабироваться и влазить

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
    void createField(final Activity ac, final int columns, final int lines) {
        final GridView grid = (GridView) ac.findViewById(R.id.grid);
        grid.setNumColumns(columns);
        
        final List<Integer> nums = new ArrayList<Integer>(columns * lines);
        for(int i = 0; i < columns * lines; i++) {
            nums.add(i);
        }
        
        ViewGroup.LayoutParams params = grid.getLayoutParams();
        params.width = ViewGroup.LayoutParams.MATCH_PARENT;
        params.height = ViewGroup.LayoutParams.MATCH_PARENT;
        
        grid.post(new Runnable() {
            @Override
            public void run() {
                int width = grid.getMeasuredWidth();
                int height = grid.getMeasuredHeight();
                
                int oneWidth = width / columns;
                int oneHeight = height / lines;
                
                int oneSize = oneWidth > oneHeight ? oneHeight : oneWidth;
                
                ViewGroup.LayoutParams par = grid.getLayoutParams();
                par.width = oneSize * columns;
                par.height = oneSize * lines;
                
                grid.setAdapter(new AdGrid(ac, nums, oneSize));
            }
        });
        
    }
    
    
    
    
    static class AdGrid extends BaseAdapter {
 
        Activity ac;
        List<Integer> nums;
        int oneWidth;
        AdGrid(Activity ac, List<Integer> nums, int oneWidth) {
            this.ac = ac;
            this.nums = nums;
            this.oneWidth = oneWidth;
        }
        
        
        @Override
        public int getCount() {
            return nums.size();
        }
 
        @Override
        public Object getItem(int location) {
            return nums.get(location);
        }
 
        @Override
        public long getItemId(int arg0) {
            return 0;
        }
 
        @Override
        public View getView(int location, View v, ViewGroup parent) {
            
            int number = nums.get(location);
            
            TextView tv = new TextView(ac);
            
            GridView.LayoutParams par = new GridView.LayoutParams(oneWidth, oneWidth);
            tv.setLayoutParams(par);
            
            tv.setBackgroundColor(Color.LTGRAY);
            tv.setText(number+"");
            tv.setGravity(Gravity.CENTER);
            tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, oneWidth / 2);
            
            return tv;
        }
        
    }
Примеры

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