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);