先来了解一下为什么会产生图形拉伸。Android手机的屏幕分辨率可以说不胜枚举,不同型号的宽高比可能是不一样的,例如Nexus 5x、小米4的分辨率是1920X1080(当前主流手机的分辨率都是这个级别),Nexus 6p的分辨率达到2560X1440。而每台手机使用的摄像头型号更是千变万化,手机摄像头有一个成像的像素。例如普通的卡片数码相机,常常可以看到类似2304X1728、1600X1200、1027X768、640X480的字样,这些数字相乘得到的结果就代表了这个相机的成像分辨率。手机里内置的摄像头和卡片数码相机的成像原理是一样的,在摄像头预览的时候,最终都会生成连续固定像素的图片,这张图片会被投影到手机的屏幕上。如果摄像头生成的预览图片宽高比和手机屏幕像素宽高比(准确地说是和相机预览屏幕宽高比)不一样的话,投影的结果肯定就是图片被拉伸。
当我们已经选出最佳手机摄像头手机摄像头预览尺寸宽(pictureWidth)和高(pictureHeight),计算出屏幕宽(screenWidth)和高(screenHeigh)后,计算显示图片控件的宽高
已知:1、屏幕宽(screenWidth)和高(screenHeigh),
2、手机摄像头预览尺寸宽(pictureWidth)和高(pictureHeight),
3、显示图片控件宽(w)高(h)h比等于预览尺寸的宽高比,
问题: 求显示图片控件宽w,高h?()
*注 :1、用screenWidth,screenHeigh,pictureWidth,pictureHeight表示,它们的单位为分辨率
2、当screenHeight*pictureWidth>screenWidth*pictureHeight时,即屏幕比较长时,控件的高=屏幕的高
3、当screenHeight*pictureWidth<screenWidth*pictureHeight时,即屏幕比较短时,控件的宽=屏幕的宽