我的活动有一个 1280x800 像素的背景图像。我使用android:scaleType="centerCrop"
.
背景图像上有一个旗杆,我需要在旗杆上方放置另一个图像(“旗帜”)。
如果设备的屏幕尺寸正好是 1280x800,那么“flag”的位置就是 (850, 520)。但屏幕大小可能会有所不同,Android 会根据centerCrop
标志相应地缩放和移动背景图像。因此,我需要以某种方式分配比例并转移到“标志”图像,以使其很好地放置在旗杆上方。
我检查了 ImageView.java 并发现 scaleType 用于设置private Matrix mDrawMatrix
. 但是我没有对该字段的读取权限,因为它是私有的。
所以,给定
@Override
public void onGlobalLayout()
{
ImageView bg = ...;
ImageView flag = ...;
int bgImageWidth = 1280;
int bgImageHeight = 800;
int flagPosX = 850;
int flagPosY = 520;
// What should I do here to place flag nicely?
}