Android ImageView 调整大小问题
Posted
技术标签:
【中文标题】Android ImageView 调整大小问题【英文标题】:Android ImageView Resize Issue 【发布时间】:2017-04-28 21:34:28 【问题描述】:ImageView里面有一张图片。
我想通过调整ImageView的宽度和长度来放大图片。
此处列出了代码:
mZoomInBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
@Override
public void onStopTrackingTouch(SeekBar seekBar)
@Override
public void onStartTrackingTouch(SeekBar seekBar)
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
double zoomInRatio = (mZoomInBar.getProgress() / 25.00d) + 1;
mMapBed.getLayoutParams().height = (int)(zoomInRatio * mapOriginalHeight);
mMapBed.requestLayout();
mMapBed.getLayoutParams().width = (int)(zoomInRatio * mapOriginalWidth);
mMapBed.requestLayout();
);
高度现在可以缩放,但宽度甚至不会改变一点。我不知道为什么。
顺便说一下,ImageView的xml部分是这样的:
<ScrollView
android:layout_
android:layout_
android:layout_weight="1">
<HorizontalScrollView
android:layout_
android:layout_>
<ImageView
android:layout_
android:layout_
android:background="@mipmap/nycsubway"
android:id="@+id/map">
</ImageView>
</HorizontalScrollView>
</ScrollView>
有什么想法吗?非常感谢!
编辑:
我发现了问题所在:布局。
如果我将 HorizontalScrollView 放在 ScrollView 之前,宽度可以缩放,但高度不能缩放; HorizontalScrollView 之前的 ScrollView,Height 可缩放,但 Width 不可缩放。
如何解决这个问题...?
问题解决了!
原来,图片应该使用android:src显示,xml中需要android:adjustViewBounds="true"。
【问题讨论】:
你可能不需要调用 requestLayout 两次,你可以调用一次。如果 double 到 int 转换有任何问题,还请检查以打印宽度值。 我只尝试了一次,但没有帮助。 生成的宽度值是多少?另外,您是否尝试过设置 mmapBed.setlayoutParams() ? 宽度是1500左右的数字。回家后我会试试Setlayoutparams。 【参考方案1】:试试这个
<ScrollView
android:layout_
android:layout_
>
【讨论】:
以上是关于Android ImageView 调整大小问题的主要内容,如果未能解决你的问题,请参考以下文章
需要调整 Android ImageView 的大小以匹配不断变化的 Drawable 大小
Android ListView toRightOf ImageView 具有不同大小而无需调整图像大小