android-以编程方式缩放和居中imageView给定的矩形范围

我的问题

假设我有一个位图-将其称为尺寸为100×75的bmap(bmap.getWidth()x bmap.getHeight())

假设我有一个矩形,矩形,坐在电话屏幕上的一点(x,y),尺寸为500×350(宽x高)

我怎么写一段代码,将这个位图放在边界矩形内.

注意:因为我使用的是ContraintLayout,所以没有父级或相对性的概念.

另外,我想要一个在(0,1]范围内的缩放变量,该变量缩放bmap,但它将其位置保持在边界矩形rect的中心.

我的可怕尝试:

ImageView imgView = new ImageView(this.context);
imgView.setMaxWidth((int)(width*scale));
imgView.setMinimumWidth((int)(width*scale));
imgView.setMaxHeight((int)(height*scale));
imgView.setMinimumHeight((int)(height*scale));

imgView.setImageBitmap(bmap);

imgView.setX(x+((width-bmap.getWidth())/2));
imgView.setY(y+((height-bmap.getHeight())/2));

imgView.setAdjustViewBounds(true);

constraintLayout.addView(imgView);

这给出了以下结果(绿色圆圈的比例= 1,红色圆圈的比例= 0.6

android-以编程方式缩放和居中imageView给定的矩形范围

有任何想法吗?我真的被卡住了.

解决方法:

对于这个问题,我看到的最简单的解决方案是使用android提供的容器来帮助我们获得此行为.首先,可以在约束布局内使用相对布局.没问题.使用两个相对布局以及其中的图像视图,只需使用centerInParent属性即可完成操作.我强烈建议不要以编程方式调整视图的大小.使用您拥有的容器和工具.

上一篇:史上最简单的SpringCloud教程 | 第十一篇: docker部署spring cloud项目


下一篇:java-在设置的时间内使ImageView可见