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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.91
grigorill
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 5
#1

Смена BackGround - Программирование Android

16.03.2012, 20:07. Просмотров 4527. Ответов 14
Метки нет (Все метки)

Здравствуйте.Возникла такая проблема. Есть 3 кнопки и 3 картинки .png, надо чтобы при нажатии на 1 кнопку появлялась в качестве background 1 картинка при нажатии на 2-ю 2-ая и т.д.
Пытаюсь сделать так:
Java
1
2
3
4
5
6
7
8
Button butHistory=(Button)findViewById(R.id.butHistory);
        butHistory.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                linearLayout.setBackgroundResource(R.drawable.fone_igri_vert_history);
            }
        });
При компиляции ошибок не выдает, но при нажатии на кнопку в эмуляторе вылетает. Я новичок в программировании поэтому за любую помощь, заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2012, 20:07     Смена BackGround
Посмотрите здесь:

foreground и background - Программирование Android
Мне надо знать момент когда ПРИЛОЖЕНИЕ сворачиваеться и когда приложение разворачивается (то есть когда приложение уходит в background и ...

Background NavigationDrawer - Программирование Android
Добрый вечер. Набрала урок с хабра - http://habrahabr.ru/post/250765/ Стала менять под себя и тут возникла проблема со сменой фонового...

background: rgba(0, 0, 0, 0.16); - Программирование Android
background: rgba( 255, 0, 0, 0.5); /* чистый красный с прозрачностью 50% */ первых три параметра задают цвет, следовательно можно...

Повторение Background - Программирование Android
Здраствуйте! У меня есть картинка 32*32. Но при применение её на задний фон, она растягивается на весь экран. Как сделать чтобы она...

Обеспечить смену цвета background'a - Программирование Android
Как поменять цвет background'a во время работы приложения? То есть,чтобы при нажатии на кнопку цвет менялся на код,который выписан в...

Вылет приложения из-за android:background - Программирование Android
Доброго времени суток. Прошу помощи вот в чем: Приложение состоит из нескольких активити, из главного можно перейти на одно из двух...

Замена цвета Background-а на заданный - Программирование Android
Помогите пожалуйста. Вроде ничего сложного, но почему то не работает. На экране 3 радиокнопки и кнопка Submit. Радиокнопки - выбор...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
16.03.2012, 22:19     Смена BackGround #2
Цитата Сообщение от grigorill Посмотреть сообщение
linearLayout.setBackgroundResource(R.drawable.fone_igri_vert_history);
linearLayout какие образом сюда присваиваешь значение?

в корневой элемент разметки (если там нет) добавить id и по нему потом ищи.
((LinearLayout) findViewById(R.id.тут_ид)).setBackgroundResoursce ...

примерно вот так получится.
petruchodd
16.03.2012, 22:25
  #3

Не по теме:

учись работать с Logcat'ом он облегчит тебе жизнь намного и не будет лишних вопросов.

NiRamz
16.03.2012, 22:33
  #4

Не по теме:

Так оно так, но по началу очень сложно сориентироваться в логах, которые выводятся. Особенно в плане разметки.

ЕвгенийС
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 6
07.06.2012, 10:12     Смена BackGround #5
Такая же ситуация. Не понимаю как сделать, так чтобы по нажатию кнопки button1 из drawable загружалась luna1, button2 - luna2 итд.
<ImageView
android:id="@+id/images"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/luna"
android:layout_gravity="center_horizontal|center"
android:layout_margin="5px"/>


Добавлено через 22 часа 11 минут
У меня, получаеться только критическая ошибка, помогите пожалуйста, третий день мучаюсь.

public class photoalbom extends Activity {

ImageView images=(ImageView)findViewById(R.id.images);
Button button1=(Button)findViewById(R.id.button1);


public void onClick(View v)
{
((LinearLayout)findViewById(R.id.images)).setBackgroundResource(R.drawable.luna1);
}

Наверное все очень плохо, но на java писать не умею, сижу над мануалами и примерами. Подскажите пожалуйста. Спасибо.
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
07.06.2012, 11:24     Смена BackGround #6
((LinearLayout)findViewById(R.id.images)).setBackgroundResource(R.drawable.luna1 );

вот этой строчкой ты приводишь тип ImageView к LinearLayout, что не есть правильно

((ImageView)findViewById(R.id.images)).setBackgroundResource(R.drawable.luna1 );
ЕвгенийС
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 6
07.06.2012, 14:46     Смена BackGround #7
Цитата Сообщение от flashok Посмотреть сообщение
((ImageView)findViewById(R.id.images)).setBackgroundResource(R.drawable.luna1 );
Да понял спасибо! Вот эта строка мне кажется тоже бесмысленой: ImageView images=(ImageView)findViewById(R.id.images); Смысла же нет слушать элемент Images? Заменил на ImageView images; Вроде бы для обьявления надо. Такой вопрос, надо в коде обьявлять сам рисунок? Указывать на него программе, что он есть в папке, или нет. Пока эклипс продолжает ругаться.
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
07.06.2012, 14:52     Смена BackGround #8
ну если не усложнять пример разными разрешениями экрана, то ваш рисунок должен лежать в drawable

Java
1
2
ImageView images=(ImageView)findViewById(R.id.images);
Button button1=(Button)findViewById(R.id.button1);
эти строчки не нужны

а про слушать я не понял

Пока эклипс продолжает ругаться.
что пишет???
ЕвгенийС
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 6
07.06.2012, 18:32     Смена BackGround #9
Хм, убрал эти две строки, критовать во время компиляции перестала, в логах только одна ошибка ActivityManager: Warning: Activity not started, its current task has been brought to the front
Но, и картинку не меняет. Да мне не нужно ничего усложнять с разрешением, просто замена. Не понимаю, тогда раз этих строк нет, как программа должна понять что иммено , button1 должна менять картинку? Я думал в этих строках как раз и ссылаемся на определеную кнопку. У меня получаеться из кода, осталось только это public void onClick(View v)
{
((ImageView)findViewById(R.id.images)).setBackgroundResource(R.drawable.luna1 );
}

Но так конечно работать не будет. Как ссослаться на кнопку button1?
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
07.06.2012, 18:54     Смена BackGround #10
короче кинь проект я посмотрю
ЕвгенийС
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 6
07.06.2012, 21:59     Смена BackGround #11
Цитата Сообщение от flashok Посмотреть сообщение
короче кинь проект я посмотрю
Хорошо, там есть рабочий код, взят из книги голощапова, алерет с двумя кнопками, на выйти или остаться, то что я пытался сделать, я откоментирую.


package evgen.test.photoalbom;

import android.R.layout;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.graphics.drawable.TransitionDrawable;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class photoalbomActivity extends Activity {


//----------------------------------------------------------------------------------------


public void onClick(View v)
{
((ImageView)findViewById(R.id.images)).setBackgroundResource(R.drawable.luna1 );
}


//Только этот блок в коментарии, остальное работает.
//-----------------------------------------------------------------------------------------

private final int IDD_EXIT = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

final Button callButton = (Button)findViewById(R.id.brew_exit);
callButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(IDD_EXIT);
}
});

}

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case IDD_EXIT:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
photoalbomActivity.this.finish();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});


builder.setCancelable(false);
return builder.create();
default:
return null;


}



}
}
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
07.06.2012, 22:01     Смена BackGround #12
киньте мне проект в архиве
или у вас там супер мего код которыв вы не хотите делиться?
просто мне так проще воспринимать код чем читать с форума
ЕвгенийС
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 6
07.06.2012, 23:08     Смена BackGround #13
Нет конечно ничего мега. Вот залил на файлообменик. fayloobmennik.net/1955917
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
08.06.2012, 00:09     Смена BackGround #14
http://dl.dropbox.com/u/20178650/photolab.zip
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2012, 01:24     Смена BackGround
Еще ссылки по теме:

Background меняет height компонента - Программирование Android
Привет. У меня есть toolbar (из android.support.v7.widget.Toolbar). У него android:layout_height=&quot;wrap_content&quot; Я ставлю на фон...

Изменение background layout 'а сторонней Activity - Программирование Android
При нажатии на кнопку должен меняться background некоторых layout'ов, которые находятся в других Activity. public class...

Цвет Background определенного итема ListView - Программирование Android
надо программно изменить цвет фона определенного пункта ListView, как такое можно реализовать?

В андроид 4.3 и выше не выходит background картинка - Программирование Android
Всем привет. на версиях 4.3 выше не выходит бэкграунд картинка и только белый фон, на нижних версиях все в порядке, в чем моя ошибка...

Как поменять цвет Background в диалоговом окне? - Программирование Android
Здравствуйте! Подскажите,пожалуйста, как поменять цвет Background в диалоговом окне?


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

Или воспользуйтесь поиском по форуму:
ЕвгенийС
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 6
08.06.2012, 01:24     Смена BackGround #15
Большое Спасибо! Помогли мне, даже больше чем ожидал. Все работает!
Yandex
Объявления
08.06.2012, 01:24     Смена BackGround
Ответ Создать тему
Опции темы

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