从SDCARD中应用背景资源

我想给一些按钮应用背景资源。这些资源来自SDCARD。通常的应用资源的方法是:

Button b = new Button(getContext());
b.setBackgroundResource(R.drawable.button_states);
//这里的 button_states 是一个 XML 文件

但是如果XML 文件是来自sdcard,我不知道如何应用一个背景。请大家指点一二。

Button b = new Button(getContext());
Bitmap bmp = BitmapFactory.decodeFile("/mnt/sdcard/test.png");
Drawable d = new BitmapDrawable(bmp);
b.setBackgroundDrawable(d);
b.setBackgroundDrawable(BitmapDrawable.createFromPath("/sdcard/XX.png"));