Para definir o plano de fundo:
RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);
É a melhor maneira de fazer isso?
java
android
background
drawable
Chad Bingham
fonte
fonte
remoteViews.setInt(R.id.btn_start,"setBackgroundResource", R.drawable.ic_button_start);
Respostas:
layout.setBackgroundResource(R.drawable.ready);
está correto.Outra maneira de conseguir isso é usar o seguinte:
Mas acho que o problema ocorre porque você está tentando carregar imagens grandes.
Aqui está um bom tutorial sobre como carregar bitmaps grandes.
UPDATE:
getDrawable (int) descontinuado no nível 22 da API
getDrawable(int )
agora está descontinuado no nível 22 da API. Você deve usar o seguinte código da biblioteca de suporte:Se você se referir ao código fonte de ContextCompat.getDrawable , ele fornece algo parecido com isto:
Mais detalhes sobre ContextCompat
Na API 22, você deve usar o
getDrawable(int, Theme)
método em vez de getDrawable (int).ATUALIZAÇÃO:
Se você estiver usando a biblioteca de suporte v4, o seguinte será suficiente para todas as versões.
Você precisará adicionar o seguinte em seu aplicativo build.gradle
Ou usando o ResourceCompat, em qualquer API como abaixo:
fonte
if(buttonBackground.equals(R.drawable.myDrawable))
, ondeDrawable buttonBackground = myButton.getBackground();
eu recebo este erro: snag.gy/weYgA.jpgmyActivity.getTheme()
da versão mais recente do método, em vez do parâmetro nulo:myView.setBackground( getResources().getDrawable(R.drawable.my_background, activity.getTheme()));
AppCompatResources.getDrawable(this.getContext(), resId)
Google já o implementou noAppCompat*
widget / visualização, por exemplo:android.support.v7.widget.AppCompatCheckBox
Tente o seguinte:
e para API 16 <:
fonte
getResources().getDrawable()
. O código correto élayout.setBackgroundResource(R.drawable.ready);
exatamente como o OP usado. O problema aqui vem do tamanho do bitmap.agora, dentro de qualquer função como onCreate, onResume
fonte
Você também pode definir o plano de fundo de qualquer imagem:
fonte
(.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
interior do códigoEstou usando o minSdkVersion 16 e o targetSdkVersion 23.
O seguinte está funcionando para mim, ele usa
Ao invés de usar:
Em vez disso, use:
getActivity()
é usado em um fragmento, se for chamado de um uso de atividadethis
.fonte
Se os seus planos de fundo estão na pasta drawable agora, tente mover as imagens da pasta drawable para drawable-nodpi em seu projeto. Isso funcionou para mim, parece que mais as imagens são redimensionadas por elas mesmas.
fonte
Use butterknife para vincular o recurso extraível a uma variável, adicionando-o ao topo da sua classe (antes de qualquer método).
então dentro de um dos seus métodos adicione
É tudo o que você precisa
fonte
fonte
Faça uma tentativa de
ViewCompat.setBackground(yourView, drawableBackground)
fonte
Tente este código:
fonte
tente isso.
fonte
fonte
Dentro do aplicativo / res / your_xml_layout_file .xml
fonte