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

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

Войти
Регистрация
Восстановить пароль
 
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
#1

Как создать view элементы программно - Программирование Android

23.11.2014, 16:58. Просмотров 619. Ответов 0
Метки нет (Все метки)

Есть 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
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
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainFrame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <FrameLayout
        android:id="@+id/baseFrame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
 
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:orientation="vertical" >
 
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1" >
                </LinearLayout>
 
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1" >
 
                    <ImageView
                        android:id="@+id/imageView4"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:src="@drawable/background0" />
 
                    <ImageView
                        android:id="@+id/imageView5"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:src="@drawable/background1" />
 
                    <ImageView
                        android:id="@+id/imageView6"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:src="@drawable/background2" />
 
                    <ImageView
                        android:id="@+id/imageView7"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:src="@drawable/background3" />
 
                    <ImageView
                        android:id="@+id/imageView8"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:src="@drawable/background4" />
                </LinearLayout>
            </LinearLayout>
 
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical" >
            </LinearLayout>
        </LinearLayout>
 
    </FrameLayout>
 
</FrameLayout>

Как сделать тоже самое, но программно. У меня мои картинки растягиваются в программном варианте, а если делать через xml ничего не растягивается картинки сохраняют как бы свою форму

Программный неудачный вариант:
Кликните здесь для просмотра всего текста
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
        frame.removeAllViews();
        mGLSurfaceView.mode = false;
        ImageView black = new ImageView(this);
        black.setBackgroundResource(R.drawable.black_background);
        black.setScaleType(ScaleType.CENTER_CROP);
        black.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        frame.addView(black);
        
        LinearLayout linear1 = new LinearLayout(this);
        linear1.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));   
        linear1.setOrientation(LinearLayout.VERTICAL);
        
        LinearLayout linear2 = new LinearLayout(this);
        linear2.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 3));    
        linear2.setOrientation(LinearLayout.VERTICAL);
        
        LinearLayout linear4 = new LinearLayout(this);
        linear4.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));    
        linear4.setOrientation(LinearLayout.HORIZONTAL);
        
        ImageView settings = new ImageView(this);
        settings.setId(1);
        settings.setBackgroundResource(R.drawable.settings);
        settings.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1));
        settings.setOnClickListener(this);
        
        ImageView rotate = new ImageView(this);
        rotate.setId(2);
        rotate.setBackgroundResource(R.drawable.rotate);
        rotate.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1));
        rotate.setOnClickListener(this);
        
        linear4.addView(settings);
        linear4.addView(rotate);
        
        LinearLayout linear5 = new LinearLayout(this);
        linear5.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));    
        linear5.setOrientation(LinearLayout.HORIZONTAL);
        
        ImageView whiteBackground = new ImageView(this);
        whiteBackground.setId(3);
        whiteBackground.setBackgroundResource(R.drawable.background0);
        whiteBackground.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));
        whiteBackground.setOnClickListener(this);
        
        ImageView blackBackground = new ImageView(this);
        blackBackground.setId(4);
        blackBackground.setBackgroundResource(R.drawable.background1);
        blackBackground.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));
        blackBackground.setOnClickListener(this);   
        
        ImageView blueBackground = new ImageView(this);
        blueBackground.setId(5);
        blueBackground.setBackgroundResource(R.drawable.background2);
        blueBackground.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));
        blueBackground.setOnClickListener(this);    
        
        ImageView greenBackground = new ImageView(this);
        greenBackground.setId(6);
        greenBackground.setBackgroundResource(R.drawable.background3);
        greenBackground.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));
        greenBackground.setOnClickListener(this);   
        
        ImageView redBackground = new ImageView(this);
        redBackground.setId(7);
        redBackground.setBackgroundResource(R.drawable.background4);
        redBackground.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));
        redBackground.setOnClickListener(this);         
        
        linear5.addView(whiteBackground);
        linear5.addView(blackBackground);
        linear5.addView(blueBackground);
        linear5.addView(greenBackground);
        linear5.addView(redBackground);
        
        linear2.addView(linear4);
        linear2.addView(linear5);
        
        LinearLayout linear3 = new LinearLayout(this);
        linear3.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));    
        linear3.setOrientation(LinearLayout.VERTICAL);
        
        linear1.addView(linear2);
        linear1.addView(linear3);
        frame.addView(linear1);


Надо так: http://www.cyberforum.ru/attachment....1&d=1416751037
А получается так(на другой цвет и 2 доп. кнопки не обращайте внимания): http://www.cyberforum.ru/attachment....1&d=1416751037
Миниатюры
Как создать view элементы программно   Как создать view элементы программно  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 16:58     Как создать view элементы программно
Посмотрите здесь:
Как программно менять View? Android
Как обрабатывать не только View элементы Android
Android Как выбрать View-элементы на intellij idea?
Как правильно размещать элементы View на Layout Android
Как создать spinner внутри recycler view? Android
Android Применить стиль к программно созданному View
Как менять view элементы со временем, некоторый промежуток времени Android
Как создать список (ListView) с динамическим количеством передаваемых View? Android
Программно задать цвет фона для View Android
Android Программно задавать layout_gravity для custom view
Android Как программно создать TextEdit
Программно создать EditText Android

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

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

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