Вызов setCompoundDrawables() не отображает составное рисование
после того, как я называю setCompoundDrawables
метод, соединение Drawable не показано..
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
btn.setCompoundDrawables(myDrawable, null, null, null);
какие мысли?
8 ответов:
Мне нужно использовать
setCompoundDrawablesWithIntrinsicBounds
.
используйте это (я тестировал). Он работает хорошо
Drawable image = context.getResources().getDrawable( R.drawable.ic_action ); int h = image.getIntrinsicHeight(); int w = image.getIntrinsicWidth(); image.setBounds( 0, 0, w, h ); button.setCompoundDrawables( image, null, null, null );
изображение пустое, потому что оно не имеет определенных границ. Вы можете использовать
setCompoundDrawables()
но прежде вы должны указать границы изображения, используяDrawable.setBounds()
метод
еще немного проще:
Drawable image = context.getResources().getDrawable(R.drawable.ic_action ); image.setBounds( 0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight() ); button.setCompoundDrawables( image, null, null, null );
пример, установленный сверху:
view.setCompoundDrawablesWithIntrinsicBounds( null, getResources().getDrawable(R.drawable.some_img), null, null);
порядок аргументов: (слева, сверху, справа, снизу)
он устарел в API 22.
этот код полезен для меня:
Drawable drawable = ResourcesCompat.getDrawable(getResources(),R.drawable.wen, null); drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); tv.setCompoundDrawables(drawable, null, null, null);
для меня setCompoundDrawablesWithIntrinsicbounds (Drawable, Drawable, Drawable, Drawable) не работает.
Я должен использовать setCompoundDrawablesWithIntrinsicbounds(0, 0, 0, 0).