Android ImageView:在保持视图大小的同时替换图像(可绘制)

Android ImageView:在保持视图大小的同时替换图像(可绘制),android,android-layout,imageview,android-imageview,android-drawable,Android,Android Layout,Imageview,Android Imageview,Android Drawable,简而言之 我有一个ImageView,大小设置为wrap\u content 图像已经设置了一个可绘制的,一切看起来都很棒。 现在,我想更改可绘制的,同时强制图像视图保持其大小 perfectlyMadeNewMapButtonImageView.setImageDrawable(mLoadingDrawable); //mLoadingDrawable.setBounds( // perfectlyMadeNewMapButtonImageView.getDrawable().getBoun

简而言之
我有一个
ImageView
,大小设置为
wrap\u content

图像已经设置了一个
可绘制的
,一切看起来都很棒。
现在,我想更改
可绘制的
,同时强制
图像视图
保持其大小

perfectlyMadeNewMapButtonImageView.setImageDrawable(mLoadingDrawable);
//mLoadingDrawable.setBounds(
//  perfectlyMadeNewMapButtonImageView.getDrawable().getBounds());
//  not working
解释
当然,简单的答案是将宽度和高度设置为固定大小。
但在我的例子中,我正在从
谷歌地图
复制
图像视图
+布局,以添加我的自定义地图按钮。它工作得很好,因为我有一个大小相同的图标。
现在我想更改一下图标(加载图标btw),但由于
可绘制的
源文件较大,它相应地更改了
图像视图的大小。
ScaleType
不起作用,因为宽度和高度不固定

我所尝试的
1.在旧边界上使用
getBounds
设置新的
Drawable
边界。
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);  
一些(不工作)代码关于我如何更改可绘图文件。
这就是我希望
ImageView
保持其大小的要点

perfectlyMadeNewMapButtonImageView.setImageDrawable(mLoadingDrawable);
//mLoadingDrawable.setBounds(
//  perfectlyMadeNewMapButtonImageView.getDrawable().getBounds());
//  not working