1,動態導入佈局:
LayoutInflater inflater = getLayoutInflater();
ViewGroup rootView = (ViewGroup) findViewById(R.id.camera);
View setting_osd = inflater.inflate(R.layout.camera_setting_osd, rootView);
camera_switcher=(RotateImageView)setting_osd.findViewById(R.id.camera_switcher);
2,按參數導入佈局:
ViewGroup rootView = (ViewGroup) findViewById(R.id.camera);
RelativeLayout.LayoutParams l1 = new RelativeLayout.LayoutParams(50,LayoutParams.WRAP_CONTENT); //指定寬, 高
l1.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, rootView.getId());
View controlBar = inflater.inflate(R.layout.attach_camera_control,rootView,false);// 獲取view,但不加載到屏幕
rootView.addView(controlBar, l1);// 在跟view上添加控件,並顯示
3,匿名內部類:
camera_switcher.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
camerswitch();
}
}
);
4,設置camera的閃光燈
if(mParameters.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_ON)
{
mParameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_OFF);
flash_btn.setImageResource(R.drawable.flash_off);
}
else if(mParameters.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_OFF)
{
mParameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_AUTO);
flash_btn.setImageResource(R.drawable.flash_auto);
}
else
{
mParameters.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_ON);
flash_btn.setImageResource(R.drawable.flash_on);
}
mCameraDevice.setParameters(mParameters);
5,隱藏設置的某些選項,如flash設置,前後camera設置:
在getPreferenceGroup() 最後添加如下代碼:
ListPreference flashMode = group.findPreference(KEY_FLASH_MODE);
IconListPreference cameraId = (IconListPreference)group.findPreference(KEY_CAMERA_ID);
removePreference( group, flashMode.getKey());
removePreference(group, cameraId.getKey());
或者:initializeIndicatorBar() 中去掉一些選項:
// addIndicator(context, group, CameraSettings.KEY_CAMERA_ID);
// addIndicator(context, group, CameraSettings.KEY_FLASH_MODE);