Thread.sleep()'i kullanmayın Thread.sleep() mevcut threadinizi donduracaktır setBackgroundResource metodunun altında kullandığınız için büyük ihtimal UI threaddesiniz ve bütün ekranı verilen saniyede donuracaktır.
new Handler().postDelayed(new Runnable() {
 public void run() { 
b1.setBackgroundResource(R.drawable.yesil);
 } }, 5000); } });