Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
antel
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
#1

Массив из ImageView

10.08.2012, 14:48. Просмотров 2981. Ответов 12
Метки нет (Все метки)

Подскажите как создать массив из ImageView?
Пытался сделать так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
RelativeLayout l=(RelativeLayout)findViewById(R.id.RelativeLayout1);
ImageView[] pole;
for(int i = 0;i<3;i++)
{
pole[i] = new ImageView(this);
pole[i].setId(i);
pole[i].setLayoutParams(new RelativeLayout.LayoutParams(35,35));
pole[i].setScaleType(ImageView.ScaleType.CENTER_CROP);
pole[i].setPadding(0, 0, 0, 0);
pole[i].setImageResource(R.drawable.ic_launcher);
l.addView(pole[i]);
}
Но оно ругается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2012, 14:48
Ответы с готовыми решениями:

Скопировать картинку из одной ImageView в другую ImageView
В ImageView поставлена картинка методом setImageResource. По нажатию на неё,...

ImageView
Добрый день. Вы не подскажите, как передать изображение из одного ImageView в...

ImageView
Подскажите как правильно выводить картинку из URL Вроде нашел какой то пример...

ImageView
Добрый день ! Делал проект с нуля, все как обычно, но при поиске id для...

Анимация ImageView
Здравствуйте. Как реализовать анимацию Imageview таким образом,что бы при...

12
Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
10.08.2012, 18:33 #2
1. id объекта не должен быть 0.
2. В программе не должно быть два одинаковых id.
3. Где лог ошибки?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.08.2012, 23:42 #3
NullPointerException.

ImageView[] pole = new ImageView[3];
учите Java.

Добавлено через 2 часа 8 минут
Цитата Сообщение от Bes-s Посмотреть сообщение
В программе не должно быть два одинаковых id.
почему?
1
Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
11.08.2012, 00:29 #4
Цитата Сообщение от V0v1k Посмотреть сообщение
почему?
крашает. пример у сожалению не скину, но иногда выдает что т вроде: view c таким id уже существует.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 01:46 #5
хм, у меня есть десятки вюшек с одинаковым id хотя бы там, где есть листы с кастомными айтемами (иначе и быть не может). ну а если в разных активитях, то вообще проблем не вижу.

Добавлено через 1 минуту
может это в одном GroupView не может быть вюшек с одинаковым id на одном уровне?
ну, про одну программу, Вы точно загнули.

Добавлено через 25 минут
Цитата Сообщение от V0v1k Посмотреть сообщение
может это в одном GroupView не может быть вюшек с одинаковым id на одном уровне?
хм, даже это можно
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="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
</LinearLayout>
не знаю как вы добились такой ошибки....

Добавлено через 7 минут
Даже такой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      LinearLayout layout = new LinearLayout(this);
        layout.setLayoutParams(new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 
        TextView t = new TextView(this);
        t.setText("1");
        t.setId(0);
 
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        t = new TextView(this);
        t.setText("1");
        t.setId(0);
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        setContentView(layout);
не дал никаких ошибок...
и id 0, и одинаковое у обеих view.
0
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
11.08.2012, 03:09 #6
Цитата Сообщение от V0v1k Посмотреть сообщение
хм, у меня есть десятки вюшек с одинаковым id хотя бы там, где есть листы с кастомными айтемами (иначе и быть не может). ну а если в разных активитях, то вообще проблем не вижу.

Добавлено через 1 минуту
может это в одном GroupView не может быть вюшек с одинаковым id на одном уровне?
ну, про одну программу, Вы точно загнули.

Добавлено через 25 минут

хм, даже это можно
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="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
</LinearLayout>
не знаю как вы добились такой ошибки....

Добавлено через 7 минут
Даже такой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      LinearLayout layout = new LinearLayout(this);
        layout.setLayoutParams(new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 
        TextView t = new TextView(this);
        t.setText("1");
        t.setId(0);
 
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        t = new TextView(this);
        t.setText("1");
        t.setId(0);
        layout.addView(t, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        setContentView(layout);
не дал никаких ошибок...
и id 0, и одинаковое у обеих view.
хм предполагаю, что креш легко вызвать.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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" >
 
    <TextView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
 
    <ImageView
        android:id="@+id/qqq"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
 
</LinearLayout>
теперь, врядли адекватно сработает)
TextView tv = (TextView) findFivewById(R.id.qqq);
ImageView tv = (ImageView) findFivewById(R.id.qqq);
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 03:16 #7
Цитата Сообщение от silentnuke Посмотреть сообщение
TextView tv = (TextView) findFivewById(R.id.qqq);
ImageView tv = (ImageView) findFivewById(R.id.qqq);
ну естественно, что в обеих случает вытянется TextView и будет креш при кастинге. это единственный случай когда не нужно делать одинаковый id, ну а в других случаях это нужно и даже необходимо.
0
silentnuke
Android Programmer
139 / 140 / 10
Регистрация: 08.12.2010
Сообщений: 421
11.08.2012, 03:18 #8
Цитата Сообщение от V0v1k Посмотреть сообщение
ну естественно, что в обеих случает вытянется TextView и будет креш при кастинге. это единственный случай когда не нужно делать одинаковый id, ну а в других случаях это нужно и даже необходимо.
эм, не стоит мне это рассказывать)
Прекрасно знаю, ибо разрабатываю игры, и там это очень активно использую.
Но вы сказали, что не знаете как привести к крешу, вот вам вариант)
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 03:22 #9
а креш при желании можно всегда вызвать, например как у топикстартера ImageView[] pole; pole[i] = new ImageView(this);Но это не означает, что нельзя юзать масивы, нужно просто правильно их юзать

Добавлено через 2 минуты
Цитата Сообщение от silentnuke Посмотреть сообщение
Но вы сказали, что не знаете как привести к крешу, вот вам вариант)
я просил такой креш
Цитата Сообщение от Bes-s Посмотреть сообщение
view c таким id уже существует.
а вы мне креш с кастингом написали не имеющий отношения к одинаковым id, еще бы сразу написали (Activity)new Object();
0
Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
11.08.2012, 04:22 #10
Цитата Сообщение от V0v1k Посмотреть сообщение
а вы мне креш с кастингом написали не имеющий отношения к одинаковым id, еще бы сразу написали (Activity)new Object();
вполне возможно, это было давно, и точно вспомнить что было в логе сложно. Но суть все поняли.
Что до нулевого - если в relativeLayout пытаться выстроить отношения вокруг элемента с нулевым id - то он будет просто игнорироваться.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 13:32 #11
Цитата Сообщение от Bes-s Посмотреть сообщение
Но суть все поняли.
ага, суть в том, что вы написали неправду.
0
antel
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
11.08.2012, 15:24  [ТС] #12
V0v1k, может посоветуете что почитать по андроиду?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.08.2012, 16:00 #13
Я вот это сейчас читаю - Рето Майер - Android 2. Программирование приложений
А так-то по документации учился http://developer.android.com/intl/ru/training/index.html
1
11.08.2012, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2012, 16:00

Сохранить ImageView
Подскажите пожалуйста, пытаюсь наложить bitmap на bitmap из imageview и...

ImageView и анимация
Всем привет! Как можно переместить ImageView за пределы правой границы экрана...

Квадратный ImageView
Как заставить ImageView всегда быть квадратным и при этом максимального размера...


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

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

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