简而言之
我的ImageView
尺寸设置为wrap_content
图片已设置drawable
,一切看起来都很棒
现在,我想更改drawable
,同时强制ImageView
保持其大小。
解释
嗯,简单的答案当然是设置宽度和宽度。高度到固定大小。
但在我的情况下,我正在从ImageView
复制Google Map
+布局以添加我的自定义地图按钮。它运作良好,因为我有一个相同大小的图标
现在我想暂时更改图标(加载图标顺便说一句),但由于Drawable
来源较大,因此会相应更改ImageView
尺寸。
由于宽度和高度不固定,ScaleType
无法正常工作。
我尝试过的事情
1.使用旧版Drawable
设置新的getBounds
边界
2. setRight()
上的ImageView
,其中包含现有地图按钮的右边界(原始地图按钮不会更改)。
(左边已经固定,它在RelativeLayout
内)。
我创建新按钮的一些(工作)代码
ImageView newBtn = new ImageView(context);
newBtn.setAdjustViewBounds(false);
newBtn.setBackgroundResource(R.drawable.map_btn_background);
newBtn.setScaleType(ScaleType.CENTER_INSIDE);
newBtn.setImageResource(imageResId);
newBtn.setClickable(true);
RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) locationBtn.getLayoutParams();
rlp = copyRelativeLayoutParams(rlp);
//add to Google's map button layout
btnContainer.addView(newBtn, rlp);
关于如何更改drawable的一些(不工作)代码
这就是我希望ImageView
保持它的大小。
perfectlyMadeNewMapButtonImageView.setImageDrawable(mLoadingDrawable);
//mLoadingDrawable.setBounds(
// perfectlyMadeNewMapButtonImageView.getDrawable().getBounds());
// not working