Camera預覽尺寸和獲取屏幕寬高。

算法需要將預覽大小與手機的分辨率掛鉤,才能夠在不同分辨率的手機上面預覽都不變形。


/**
 * 獲取最佳預覽大小
 * @param parameters 相機參數
 * @param screenResolution 屏幕寬高
 * @return
 */
private Point getBestCameraResolution(Camera.Parameters parameters, Point screenResolution) {
    float tmp = 0f;
    float mindiff = 100f;
    float x_d_y = (float) screenResolution.x / (float) screenResolution.y;
    Size best = null;
    List<Size> supportedPreviewSizes = parameters.getSupportedPreviewSizes();
    for (Size s : supportedPreviewSizes) {
        tmp = Math.abs(((float) s.height / (float) s.width) - x_d_y);
        if (tmp < mindiff) {
            mindiff = tmp;
            best = s;
        }
    }
    return new Point(best.width, best.height);
}


獲取屏幕寬高的方法如下:

/**
 * 獲取屏幕寬度和高度,單位爲px
 * @param context
 * @return
 */
public static Point getScreenMetrics(Context context){
   DisplayMetrics dm =context.getResources().getDisplayMetrics();
   int w_screen = dm.widthPixels;
   int h_screen = dm.heightPixels;
   return new Point(w_screen, h_screen);
   
}




發佈了73 篇原創文章 · 獲贊 35 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章