액티비티 변경없이 자연스래 레이아웃만 변경하고 싶은데요

스캔서치나 오브젯 어플 비슷한걸 만들고 있습니다

{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.camerapreview);
        frameLayout = (FrameLayout)findViewById(R.id.camera_frame);               
        mPreview = new Preview(getApplicationContext());
        frameLayout.addView(mPreview, 0);  
       
        final Button btn_upbutton = (Button)findViewById(R.id.btn_cameraup);
        final Button btn_button1 = (Button)findViewById(R.id.btn_camera1);
       
        btn_button1.setOnClickListener(new View.OnClickListener(){
           @Override
           public void onClick(View v) {
                      setContentView(R.layout.main);  
                      frameLayout = (FrameLayout)findViewById(R.id.camera_frame);
                      mPreview = new Preview(getApplicationContext());
                      frameLayout.addView(mPreview, 0);      
           }
        });
}

btn_button1을 클릭시 레이아웃과 다시 카메라를 배경으로 하였는데 딜레이시간이 길고 깜빡이더군요

보통 이렇게 카메라를 배경에 두고 버튼 클릭시 다른 화면이 보이거나 이렇게 구현할때 어떤 방법을 쓰는지

조언 부탁드립니다.

감사합니다