2011-09-13 10 views
21

Używam Button utworzone za pomocą następującego koduJak ustawić obraz tła przycisku poprzez kod

LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.VERTICAL); 

Button btn = new Button(this); 
btn.setOnClickListener(newtodobtn); 
btn.setText("New Todo"); 

btn.setBackgroundDrawable(new Button(this).getBackground()); 

ll.addView(btn); 

mam zdjęcie na ścieżce @drawable/new_todo_image ustawić jako tło dla przycisku. Jak programowo ustawić go na Button?

Odpowiedz

74

za ustawić obraz tła dla przycisku, który jest w rozciągliwej folderze następnie skorzystać z poniższego kodu

btn.setBackgroundResource(R.drawable.new_todo_image); 
+0

Dziękuję ... Twój kod zadziałał dla mnie –

0

spróbuj tego:

btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.new_todo_image)); 
+0

otrzymuję następujący błąd: Metoda setBackgroundDrawable (rozciągliwej) w typ widoku nie dotyczy argumentów (int) –

+0

mam edytował odpowiedź. Spróbuj teraz. –

+0

btn.setBackgroundResource (R.drawable.new_todo_image); Ten kod odpowiada wymaganiom. I dzięki za lepszą sugestię –

7

Spróbuj tego:

btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.new_todo_image)); 
+3

od 2014 roku, jest to przestarzałe. – katzenhut

1

Spróbuj tak

final int sdk = android.os.Build.VERSION.SDK_INT; 
    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) 
    { 
     mBtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.new_todo_image)); 
    } 
    else 
     { 
     mBtn.setBackground(getResources().getDrawable(R.drawable.new_todo_image)); 
     } 
1

w Android studia, aby ustawić tle Przycisk zapisu obrazu podany kod:

int image_resid = getApplicationContext().getResources().getIdentifier("image_name", "drawable", getApplicationContext().getPackageName()); 
button.setBackgroundResource(image_resid);