我有一个大小为1024x768的图像,其中热点被映射到10英寸平板电脑上工作但是当我在点燃火上运行我的应用程序时,图像尺寸减小,热点将无法工作。是否有任何公式来映射坐标要用较大的图像映射较小的图像?
答案 0 :(得分:1)
您没有提供足够的细节来提供准确的答案。
假设ImageView和触摸侦听器获得X和Y,那么您需要将热点缩放到图像显示的任何分辨率。我最近通过扩展ImageView类并重写onMeasure()回调来完成此操作。在onMeasure中,确定图像是横向还是纵向,然后计算图像原始尺寸(指定热点的尺寸)和显示尺寸之间的缩放系数。
这样的事情:
if (this.getWidth() > this.getHeight()) {
scaleFactor = ((float)this.getWidth() / (float)this.originalBitmapWidth);
} else {
scaleFactor = ((float)this.getHeight() / (float)this.originalBitmapHeight);
}
for (Hotspot hotspot : hotspots){
hotspot.setScale(scaleFactor);
}