我想这不会有一个好的答案或理由。我只能责怪三星没有正确实现 Camera.getParameters().setPictureSize()。
以下是我通过检查 S3 型号名称而不是调用 setPictureSize() 的解决方法
// Source - http://en.wikipedia.org/wiki/Samsung_Galaxy_S_III
String s3ModelNames[] = { "XXXXXXXXXXXXXXXX", // Place holder
"SAMSUNG-SGH-I747", // AT&T
"SAMSUNG-SGH-T999", // T-Mobile
"SAMSUNG-SGH-N064", // Japan
"SAMSUNG-SCH-R530", // US Cellular
"SAMSUNG-SCH-I535", // Verizon
"SAMSUNG-SPH-L710", // Sprint
"SAMSUNG-GT-I9300", // International
"SGH-I747", // AT&T
"SGH-T999", // T-Mobile
"SGH-N064", // Japan
"SCH-R530", // US Cellular
"SCH-I535", // Verizon
"SPH-L710", // Sprint
"GT-I9300" // International
};
List<String> s3ModelList = Arrays.asList(s3ModelNames);
if (s3ModelList.contains(deviceModel)) {
// DEVICE SPECIFIC WORK AROUND for Samsung Galaxy S3
// SKIP calling parameters.setPictureSize() Samsung Galaxy SIII phone (Confirmed on AT&T, Verizon, Sprint) due the Camera image are interlaced when setPictureSize() are set to other than default.
}