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

时间:2015-10-20 19:50:44

标签: android android-layout imageview android-imageview android-drawable

简而言之
我的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

0 个答案:

没有答案