java - Wie Hintergrund programmgesteuert in Android gezeichnet werden kann



5 Answers

Versuche dies:

layout.setBackground(ContextCompat.getDrawable(context, R.drawable.ready));

und für API 16 <:

layout.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.ready));
java android background drawable out-of-memory

Hintergrund einstellen:

RelativeLayout layout =(RelativeLayout)findViewById(R.id.background);
layout.setBackgroundResource(R.drawable.ready);

Ist der beste Weg, es zu tun?




Sie können auch den Hintergrund eines Bildes festlegen:

View v;
Drawable image=(Drawable)getResources().getDrawable(R.drawable.img);
(ImageView)v.setBackground(image);



Ich verwende eine minSdkVersion 16 und targetSdkVersion 23 Folgendes funktioniert für mich, es verwendet ContextCompat.getDrawable (Kontext, R.drawable.drawable);

Anstatt zu verwenden:
layout.setBackgroundResource(R.drawable.ready);

Verwenden Sie stattdessen:

layout.setBackground(ContextCompat.getDrawable(this, R.drawable.ready));

getActivity() wird in einem Fragment verwendet, wenn der Aufruf von einer Aktivität this




if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
     layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.ready));
else if(android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1)
     layout.setBackground(getResources().getDrawable(R.drawable.ready));
else
     layout.setBackground(ContextCompat.getDrawable(this, R.drawable.ready));



Versuchen Sie ViewCompat.setBackground(yourView , drawableBackground)




Related