- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一个像这样的简单 RelativeLayout:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#0fffff">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/img001" />
</RelativeLayout>
布局边框和图片边框之间的左/上间距取决于正在加载到 imageView 中的图片的 W/H 比率。
在此布局中显示图像后,我如何知道(以编程方式)实际边距(青色区域的宽度和高度)?
最佳答案
此方法将计算在 FIT_CENTER 之后界定对象的新矩形 和所有其他相关值。
它应该适用于对象和容器的所有情况。
public static Rect calculateFitCenterObjectRect(float containerWidth, float containerHeight, float objectWidth, float objectHeight) {
// scale value to make fit center
double scale = Math.min( (double)containerWidth / (double)objectWidth, (double)containerHeight / (double)objectHeight);
int h = (int) (scale * objectHeight); // new height of the object
int w = (int) (scale * objectWidth); // new width of the object
int x = (int) ((containerWidth - w) * 0.5f); // new x location of the object relative to the container
int y = (int) ((containerHeight - h) * 0.5f); // new y location of the object relative to the container
return new Rect(x, y, x + w, y + h);
}
您可以使用 FrameLayout 将 View 放置在您想要的任何位置后,使用之前的方法和缩放对象的新 x、y、宽度、高度。
关于android - 在 Android 中测量 "fitCenter"imageView 的边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517181/
ImageView fitCenter 算法的工作原理,我有一个 image_hight 和 image_width,我需要以编程方式实现 centerFit,但我没有运气,我试过像这样缩放图像 ne
我在我的应用程序上使用了一个主题,这样当它启动时,用户看到的第一件事就是我的背景,而不是一个丑陋的黑色或白色屏幕,顶部有一个操作栏。 @drawable/loading_home
我想显示带边框的图像。下面的解决方案适用于某些图像,但不适用于其他图像。 到目前为止,我最好的猜测是,它适用于较小的图像,但不适用于大图像。 对于较小的图片,该解决方案可以很好地显示具有 2 像素边框
给定一个像这样的简单 RelativeLayout: 布局边框和图片边框之间的左/上间距取决于正在加载到 imageView 中的图片的 W/H 比率。 在此布局中显示图
我使用 Layout_width="fill_parent"和 Layout_height="wrap content"。如果图像比 ImageView 大,它将被完美地缩小。 但是,我从来没有使用它
我是一名优秀的程序员,十分优秀!