Android - setBackgroundResource для кнопки - PullRequest
1 голос
/ 30 марта 2012

У меня есть несколько кнопок, для которых я устанавливаю фон с помощью setBackgroundResource(R.drawable.cal_box_center);, и проблема, с которой я сталкиваюсь, заключается в том, что мой фон - это градиент, который имеет этот эффект полосатости (раздражает), и я прочитал его, чтобы удалить этоВам нужно будет установить Bitmap.Config.ARGB_8888.Я посмотрел на API, и способ сделать это - использовать decodeStream и т. Д., Но как я могу использовать setBackgroundResource и при этом установить для Config значение ARGB_8888?

Заранее спасибо.

1 Ответ

1 голос
/ 19 апреля 2012

Вы можете использовать этот фрагмент кода:

// create button
Button btn = new Button(getApplicationContext());

//decode the resource(You can also use decodeStream and other decode method of
//BitmapFactory)
Bitmap btm = BitmapFactory.decodeResource(getResources(), R.drawable.cal_box_center);

//create another copy of your bitmap and specify Config
Bitmap newBtm = btm.copy(Bitmap.Config.ARGB_8888, true);

//use your newBtm to create a BitmapDrawable
BitmapDrawable btmDrwble = new BitmapDrawable(newBtm);

// finally set the drawable as your button's background
btn.setBackgroundDrawable(btmDrwble);
...