使用 setCompoundDrawablesWithIntrinsicBounds() 时如何设置图像大小?
How to set image size when using setCompoundDrawablesWithIntrinsicBounds()?
我需要在选项卡布局的选项卡中将图像设置在文本上方。因此,我使用 setCompoundDrawablesWithIntrinsicBounds 在我的 TextView
中设置图像,但我不知道如何为我的图像指定大小。
我试着给出这样的尺寸:
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);
但是它给了我这个错误:
Cannot resolve method setCompoundDrawablesWithIntrinsicBounds(int,android.graphics.drawable.Drawable,int,int);
我也试过了
tabOne.setCompoundDrawables(0,mobile_drawable,0,0);
但它也不起作用?
那么使用setCompoundDrawablesWithIntrinsicBounds时如何给图片大小呢???
看看这个
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
已接受的答案已过时且存在错误...
您不能使用 setCompoundDrawablesWithIntrinsicBounds
设置可绘制大小
相反,您需要像这样使用 setCompoundDrawables
来设置它
Drawable img = ContextCompat.getDrawable(yourContext, R.drawable.yourImgId);
img.setBounds(0, 0, yourSize, yourSize);
yourTextView.setCompoundDrawables(img, null, null, null);
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);
我需要在选项卡布局的选项卡中将图像设置在文本上方。因此,我使用 setCompoundDrawablesWithIntrinsicBounds 在我的 TextView
中设置图像,但我不知道如何为我的图像指定大小。
我试着给出这样的尺寸:
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);
但是它给了我这个错误:
Cannot resolve method setCompoundDrawablesWithIntrinsicBounds(int,android.graphics.drawable.Drawable,int,int);
我也试过了
tabOne.setCompoundDrawables(0,mobile_drawable,0,0);
但它也不起作用?
那么使用setCompoundDrawablesWithIntrinsicBounds时如何给图片大小呢???
看看这个
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
已接受的答案已过时且存在错误...
您不能使用 setCompoundDrawablesWithIntrinsicBounds
相反,您需要像这样使用 setCompoundDrawables
来设置它
Drawable img = ContextCompat.getDrawable(yourContext, R.drawable.yourImgId);
img.setBounds(0, 0, yourSize, yourSize);
yourTextView.setCompoundDrawables(img, null, null, null);
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);