public void surfaceChanged(SurfaceHolder holder, int format, int width,
   int height) {
  Camera.Parameters params = mCamera.getParameters();
  List<Size> arSize = params.getSupportedPictureSizes();
  if(arSize == null){
   params.setPreviewSize(width, height);
  }else{
   int diff = 10000;
   Size opti = null;
   for(Size s: arSize){
    if(Math.abs(s.height-height)<diff){
     diff = Math.abs(s.height - height);
     opti =s;
    }
   }
   params.setPreviewSize(opti.width, opti.height);
  }
  mCamera.setParameters(params);
  mCamera.startPreview();
 }

여기서 diff의 의미가 뭔가요?
for문도 저런식으로 쓰는건 안해봐서;; 햇갈리네요;;

그리고 추가질문있는데요
mSurface = (MyCameraSurface)findViewById(R.id.preview)
예제에는 이러한 id를 지정한 xml이 나와있지 않은데
에러없이 하려면 xml에는 어떻게 써야하는건가요;;
MyCameraSurface클래스는 예제에 있는데 ㅠ,.ㅠ


List<Camera.Size> arSize = params.getSupportedPreviewSizes();

마지막으로 리스트안에 들어가는 카메라의 사이즈질문인데요
예제에서는 저기안에 Camera.Size로 안하고 Size로 해도 되더라고요 개발자api에 들어가보니까
그냥 Size라는 클래스는 없는거 같은데 어떻게 그냥 Size로 해도 되는거죠?