问题
I need to set image above text in tabs in Tab Layout. So I set image in my TextView
using setCompoundDrawablesWithIntrinsicBounds but I don't know how give size for my image.
I tried to give size like this:
Drawable dr = ContextCompat.getDrawable(MainActivity.this, R.drawable.mobile_icon);
Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
mobile_drawable = new BitmapDrawable(getResources(), Bitmap.createScaledBitmap(bitmap, 50, 50, true));
TextView tabOne = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null);
tabOne.setText("Mobile");
tabOne.setCompoundDrawablesWithIntrinsicBounds(0,mobile_drawable,0,0);
tabLayout.getTabAt(0).setCustomView(tabOne);
But it gives me this error:
Cannot resolve method setCompoundDrawablesWithIntrinsicBounds(int,android.graphics.drawable.Drawable,int,int);
I also tried
tabOne.setCompoundDrawables(0,mobile_drawable,0,0);
but it also not working?
So how to give image size when using setCompoundDrawablesWithIntrinsicBounds???
回答1:
Check this out
Drawable img = ContextCompat.getDrawable(MainActivity.this,R.drawable.btn_img);
// You need to setBounds before setCompoundDrawables , or it couldn't display
img.setBounds(0, 0, img.getMinimumWidth(), img.getMinimumHeight());
btn.setCompoundDrawables(img, null, null, null);
Calculate image size when using setCompoundDrawables for EditText
回答2:
The accepted answer is outdated and buggy...
You cannot set drawable size using setCompoundDrawablesWithIntrinsicBounds
Instead, you need to set it using setCompoundDrawables
like this
Drawable img = ContextCompat.getDrawable(yourContext, R.drawable.yourImgId);
img.setBounds(0, 0, yourSize, yourSize);
yourTextView.setCompoundDrawables(img, null, null, null);
回答3:
What worked for me in VS.Xamarin
text = parentView.FindViewById<EditText>(Resource.Id.text);
Drawable img = ContextCompat.getDrawable(context, R.id.resource_id);
img.SetBounds(0, 0, 20, 20);
text.SetCompoundDrawables(img, null, null, null);
来源:https://stackoverflow.com/questions/33538658/how-to-set-image-size-when-using-setcompounddrawableswithintrinsicbounds