Программное изменение ImageButton

Интерфейс, диалоги, темы, стили, меню
Ответить
Mr. Nobody
Сообщения: 40
Зарегистрирован: 22 апр 2013, 21:28

Программное изменение ImageButton

Сообщение Mr. Nobody » 17 авг 2013, 20:29

Подскажите, пожалуйста, как программно сменить изображение в ImageButton

Код: Выделить всё

img.setImageResource(R.drawable.secondimage);
какой путь надо прописать между (...) и куда кидать картинку

Сразу такой вопрос:
По умолчанию предлагает только одну картинку "@drawable/ic_launcher" это картинка, на которой изображен android. Откуда он ее берет?
Я нашел три папки (drawable-hdpi, drawable-mdpi, drawable-xhdpi) и в каждой есть картинка ic_launcher.png

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Программное изменение ImageButton

Сообщение rezak90 » 17 авг 2013, 22:23

в зависимости от плотности экрана он сам выберет нужную картинку
R.id.team
Политика на форуме запрещена

Mr. Nobody
Сообщения: 40
Зарегистрирован: 22 апр 2013, 21:28

Re: Программное изменение ImageButton

Сообщение Mr. Nobody » 17 авг 2013, 22:28

т.е. если я закину в любую папку startandroid.png и пропишу
img.setImageResource(R.drawable.startandroid);
будет работать? или надо еще что-то прописать?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Программное изменение ImageButton

Сообщение Foenix » 17 авг 2013, 22:43

картинку нужно кинуть или в папку drawable (одну на все разрешения экрана), или в папки drawable с приставкой после черточки, например drawable-hdpi, соответсвующую разрешению (если при разных разрешениях экрана будет использоваться картинка своего размера)

ну и вписывать ее имя так, как у тебя в коде..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Программное изменение ImageButton

Сообщение Foenix » 17 авг 2013, 22:44

Mr. Nobody писал(а):т.е. если я закину в любую папку startandroid.png и пропишу
img.setImageResource(R.drawable.startandroid);
будет работать? или надо еще что-то прописать?
нельзя "в любую папку", или в 1 drawable, или во ВСЕ остальные.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Mr. Nobody
Сообщения: 40
Зарегистрирован: 22 апр 2013, 21:28

Re: Программное изменение ImageButton

Сообщение Mr. Nobody » 17 авг 2013, 23:00

аа, а я думаю, чего вылетает. Спасибо большое

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Программное изменение ImageButton

Сообщение rezak90 » 17 авг 2013, 23:05

Foenix писал(а):нельзя "в любую папку", или в 1 drawable, или во ВСЕ остальные.
лукавишь, можно ;)
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Программное изменение ImageButton

Сообщение Foenix » 17 авг 2013, 23:31

ну да, можно. Но правильно ли?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Mr. Nobody
Сообщения: 40
Зарегистрирован: 22 апр 2013, 21:28

Re: Программное изменение ImageButton

Сообщение Mr. Nobody » 17 авг 2013, 23:34

Хм, чего вылетает тогда, пойду ошибку искать)

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Программное изменение ImageButton

Сообщение rezak90 » 17 авг 2013, 23:35

Foenix писал(а):ну да, можно. Но правильно ли?
конечно не правильно
R.id.team
Политика на форуме запрещена

Mr. Nobody
Сообщения: 40
Зарегистрирован: 22 апр 2013, 21:28

Re: Программное изменение ImageButton

Сообщение Mr. Nobody » 18 авг 2013, 01:11

Черт, столько времени убил, оказывается ошибка была в том, что это не ImageButton, а ImageView..
Разработчики eclipse могли бы показать ошибку..
Вопрос решен, все работает, всем большое спасибо

Mr. Nobody
Сообщения: 40
Зарегистрирован: 22 апр 2013, 21:28

Re: Программное изменение ImageButton

Сообщение Mr. Nobody » 18 авг 2013, 01:41

Код: Выделить всё

		Intent intent = getIntent();
	    String getlevel = intent.getStringExtra("level");
	    String pathlevel = "level_" + getlevel;
	    img.setImageResource(R.drawable.pathlevel);
Скажите, пожалуйста, как сделать, чтобы код не выдавал ошибку? у меня название файла формируется программно, он его естественно не находит и выдает ошибку (pathlevel подчеркнут красным)

Нашел
http://stackoverflow.com/questions/1264 ... ce-in-code

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Программное изменение ImageButton

Сообщение Foenix » 18 авг 2013, 01:50

Что ты! так работать не будет!! что ж ты переменную вписал-то туда?
Надо получить int значение ресурса вначале,
попробуй так

Код: Выделить всё

int id = getResources().getIdentifier(pathlevel, "drawable", getPackageName());
setImageResource(id);
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить