Я создал макет, в котором размер моей поверхности был изменен по сравнению с «исходным размером», я сделал следующее:
ViewGroup.LayoutParams params = mSurfaceView.getLayoutParams();
int mPixels=getResources().getDimensionPixelSize(R.dimen.profile_pic_dimension); //200
params.width=mPixels;
params.height=mPixels;
mSurfaceView.setLayoutParams(params);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
и получил вид, подобный этому: http://img412.imageshack.us/img412/9379/layoutp.png
но потом ... всякий раз, когда я делаю снимок ... он не сохраняет как то, как я могу видеть его на виде ... но вместо этого он сохраняет его нормальный размер, как если бы вид занимал весь экран (например, еслиПоверхностный вид никогда не менялся).
Я пытался использовать это:
Camera.ShutterCallback mShutterCallback = new Camera.ShutterCallback() {
@Override
public void onShutter() {
Camera.Parameters p = mCamera.getParameters();
p.setPictureSize(mSurfaceView.getWidth(), mSurfaceView.getHeight());
mCamera.setParameters(p);
}
};
, но все еще не получил желаемый размер изображения.