代码片段用于将Camera Parameters设置为:
lockRun(new Runnable() {
@Override
public void run() {
Log.v("jerikc","applyParameters before width="+getParameters().getPictureSize().width+",height="+getParameters().getPictureSize());
//preview size changed, zsd changed, camera mode changed, open camera.
mSettingChecker.applyPreferenceToParameters();
Log.v("jerikc","applyParameters after width="+getParameters().getPictureSize().width+",height="+getParameters().getPictureSize());
}
});
SettingChecker.java
public void applyPreferenceToParameters() {
Log.v("jerikc","SettingChecker.applyPreferenceToParameters before width="+mContext.getParameters().getPictureSize().width+",height="+mContext.getParameters().getPictureSize());
...
Log.v("jerikc","SettingChecker.applyPreferenceToParameters after width="+mContext.getParameters().getPictureSize().width+",height="+mContext.getParameters().getPictureSize());
}
日志如下:
V/jerikc (17866): applyParameters before width=2560,height=android.hardware.Camera$Size@4fde180
V/jerikc (17866): SettingChecker.applyPreferenceToParameters before width=2560,height=android.hardware.Camera$Size@4fde180
V/jerikc (17866): SettingChecker.applyPreferenceToParameters after width=4096,height=android.hardware.Camera$Size@7fc9900
V/jerikc (17866): applyParameters after width=2560,height=android.hardware.Camera$Size@4fde180
我在调用之前和之后都添加了日志 mSettingChecker.applyPreferenceToParameters()。我还添加了日志 在方法 applyPreferenceToParameters 之前和之后。该 getParameters()将返回 mParameter 对象。
为什么宽度值不同(一个是4096,另一个是 2560)?
答案 0 :(得分:1)
正如您在记录行末尾的@4fde180
和@7fc9900
输出中所看到的,您正在使用不同的Camera.Size
个对象。
您的方法applyPreferenceToParameters()
似乎并未将更改后的值存储在您希望在其他方法/类中的位置。