6. CameraHeadUpDisplay.java文件
其位于Packages/apps/camera/ src/com/android/camera/ui/ CameraHeadUpDisplay.java。
在函数getListPreferences中添加CameraSettings.KEY_CAMERA_ID,即如下所示:
ListPreference prefs[] = getListPreferences(group,
CameraSettings.KEY_FOCUS_MODE,
CameraSettings.KEY_EXPOSURE,
CameraSettings.KEY_SCENE_MODE,
CameraSettings.KEY_PICTURE_SIZE,
CameraSettings.KEY_CAMERA_ID,
CameraSettings.KEY_JPEG_QUALITY,
CameraSettings.KEY_COLOR_EFFECT);
函数getListPreferences()定义在文件HeadUpDisplay.java中,其定义为:
protected static ListPreference[] getListPreferences(
PreferenceGroup group, String ... prefKeys) {
ArrayList<ListPreference> list = new ArrayList<ListPreference>();
for (String key : prefKeys) {
ListPreference pref = group.findPreference(key);
if (pref != null && pref.getEntries().length > 0) {
list.add(pref);
}
}
return list.toArray(new ListPreference[list.size()]);
}
这里的处理,就决定了哪些菜单项会被考虑去做显示。所以必须添加CameraSettings.KEY_CAMERA_ID进去,否则菜单项是不会被显示的。
7. Camera.java文件
其位于Framework/base/core/java/android/hardware/camera.java。
在这个文件中,主要是提供几个获取和设置cameraId的接口。首先定义:
private static final String KEY_CAMERA_ID = "cameraid";
public void setCamId(int cameraId)
{
if(0 == cameraId){
set(KEY_CAMERA_ID, "back_camera");
}
else{
set(KEY_CAMERA_ID, "front_camera");
}
}
public int getCamId()
{
if("back_camera" == get(KEY_CAMERA_ID)){
return 0;
}
else{
return 1;
}
}
public void setCameraIdString(String value)
{
set(KEY_CAMERA_ID, value);
}
public String getCameraIdString()
{
return get(KEY_CAMERA_ID);
}
public List<String> getSupportedCameraId() {
String str = get(KEY_CAMERA_ID + SUPPORTED_VALUES_SUFFIX);
return split(str);
}
这里需要说明的是,在camera HAL必须把硬件camera所支持的cameraID信息表示清楚,否则应用程序不能正确显示camera切换菜单。
8. CameraParameters.cpp文件
其位于Framework/base/libs/camera/CameraParameters.cpp。
在该文件中添加如下定义:
const char CameraParameters::KEY_CAMERA_ID[] = "cameraid";
const char CameraParameters::KEY_SUPPORTED_CAMERA_ID[] = "cameraid-values";
同时,CameraParameters.h中添加:
static const char KEY_CAMERA_ID[];
static const char KEY_SUPPORTED_CAMERA_ID[];
上述文字,就Android2.2下camera应用程序中如何添加菜单支持camera切换问题,做了一些描述。希望对刚接触Android平台下camera的朋友能有所帮助。如果有其他问题,可以联系我。
Revision History 修订历史记录 |
|||
Version 版本 |
Date 日期 |
Author 作者 |
Brief Description 变更简要 |
0.0.1 |
2011-05-02 |
Wangxiaozhe QQ:1226062415 |
Init draft. |
|
|
|
|
|
|
|
|
|
|
|
|