Чтобы установить фон:
RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);
Это лучший способ сделать это?
java
android
background
drawable
Чад Бингхэм
источник
источник
remoteViews.setInt(R.id.btn_start,"setBackgroundResource", R.drawable.ic_button_start);
Ответы:
layout.setBackgroundResource(R.drawable.ready);
правильно.Другой способ добиться этого - использовать следующее:
Но я думаю, что проблема возникает, потому что вы пытаетесь загрузить большие изображения.
Вот хороший учебник, как загружать большие растровые изображения.
ОБНОВЛЕНИЕ:
getDrawable (int) устарело на уровне API 22
getDrawable(int )
, теперь устарело на уровне API 22. Вместо этого следует использовать следующий код из библиотеки поддержки:Если вы ссылаетесь на исходный код ContextCompat.getDrawable , он дает вам что-то вроде этого:
Подробнее о ContextCompat
Начиная с API 22, вы должны использовать
getDrawable(int, Theme)
метод вместо getDrawable (int).ОБНОВЛЕНИЕ:
Если вы используете библиотеку поддержки v4, следующего будет достаточно для всех версий.
Вам нужно будет добавить следующее в ваше приложение build.gradle
Или используя ResourceCompat в любом API, как показано ниже:
источник
if(buttonBackground.equals(R.drawable.myDrawable))
гдеDrawable buttonBackground = myButton.getBackground();
я получаю эту ошибку: snag.gy/weYgA.jpgmyActivity.getTheme()
последняя версия метода вместо нулевого параметра:myView.setBackground( getResources().getDrawable(R.drawable.my_background, activity.getTheme()));
AppCompatResources.getDrawable(this.getContext(), resId)
вместо этого, Google уже реализовал это вAppCompat*
виджет / представление, например:android.support.v7.widget.AppCompatCheckBox
Попробуй это:
и для API 16 <:
источник
getResources().getDrawable()
. Правильный код такойlayout.setBackgroundResource(R.drawable.ready);
же, как и используемый ОП. Проблема здесь связана с размером растрового изображения.теперь внутри любой функции, например onCreate, onResume
источник
Вы также можете установить фон любого изображения:
источник
(.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
внутренний кодЯ использую minSdkVersion 16 и targetSdkVersion 23.
У меня работает следующее, он использует
Вместо того, чтобы использовать:
Скорее используйте:
getActivity()
используется во фрагменте, если вызов от использования активностиthis
.источник
Если ваши фоны находятся сейчас в папке drawable, попробуйте переместить изображения из папки drawable в папку drawable-nodpi в вашем проекте. Это сработало для меня, кажется, что еще изображения изменяются сами по себе ..
источник
Используйте butterknife, чтобы привязать ресурс drawable к переменной, добавив его в начало вашего класса (перед любыми методами).
затем внутри одного из ваших методов добавить
Это все что тебе нужно
источник
источник
Попробуй
ViewCompat.setBackground(yourView, drawableBackground)
источник
Попробуйте этот код:
источник
попробуй это.
источник
источник
Внутри приложения / res / your_xml_layout_file .xml
источник