2014-09-20 3 views
1

Это один 12 часов debugging..help меня ..андроид setBackgroundDrawable не работает

Рез/вытяжке

main_img1.png 
    main_img2.png 

XML

android:background="@drawable/main_img1" 

Член

RelativeLayout relativelayout; 

OnCreate

relativelayout = new RelativeLayout(this); 
    relativelayout.setBackgroundDrawable(getResources().getDrawable(R.drawable.main_img2)); 
    relativelayout.invalidate(); 

изображение не изменится setBackgroundDrawable Не работает никакая ошибка не критическая точка

Вы не можете использовать ImageView,
изменение динамически на фоне макета, обработчик

Пожалуйста поделитесь своими знаниями

ответ

1

Необходимо, чтобы RelativeLayout знал, к какому ресурсу вы обращаетесь:

XML

android:id="@+id/your_layout" 
android:background="@drawable/main_img1" 

OnCreate

relativelayout = new RelativeLayout(this); 
relativelayout = (RelativeLayout)findViewById(R.id.your_layout) 
+0

идентификатор не определен в XML-файл – Andromer

+0

Спасибо за вашу доброту – Andromer

0

Я думаю, что проблема в том, что ваша вытяжка отсутствует свои внутренние границы. Итак, вместо setBackgroundDrawable используйте setBackgroundResource и дайте возможность автоматически настроить границы.

Например

relativelayout.setBackgroundResource(R.drawable.main_img2); 
0

пожалуйста, попробуйте это:

XML:

android:background="@drawable/main_img1" 

OnCreate

RelativeLayout relativelayout; 
relativelayout = (RelativeLayout)findViewById(R.id.your_layout) 
    relativelayout.setBackgroudResource(null); 
    relativelayout.setBackgroundResource(R.drawable.main_img2); 

Я надеюсь, что его полезным для вас.

+0

Спасибо за вашу доброту, @dipali вашей доброты, я сплю tonight – Andromer

+0

setBackgroudResource принимает int и не может быть установлен в null –

0

Сделайте это так;

XML:

 <RelativeLayout> 
      android:id="@+id/rel_layout" 
      android:background"@drawable/main_img1" 
     </RelativeLayout> 

Java:

 RelativeLayut rel_layout=(RelativeLayout)findviewbyId(R.id.rel_layout); 
     rel_layout.setBackgroundResource(R.drawable.main_img2); 
+0

Спасибо за вашу доброту. @ Balvinder Singh! Твоя доброта, я сплю сегодня – Andromer

0

Метод setBackgroundDrawable осуждается.Вместо того, чтобы использовать

setBackgroundResource(getResources().getDrawable(R.drawable.main_img2)); 

получить также ссылку на макет с XML, как показано ниже

relativelayout = (RelativeLayout)findViewById(R.id.your_layout); 
Смежные вопросы