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.2camera应用程序中如何添加菜单支持camera切换问题,做了一些描述。希望对刚接触Android平台下camera的朋友能有所帮助。如果有其他问题,可以联系我。

Revision History

修订历史记录

Version

版本

Date

日期

Author

作者

Brief Description

变更简要

0.0.1

2011-05-02

Wangxiaozhe

wxiaozhe@163.com

QQ1226062415

Init draft.

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android导入自定义的jar包时出现 E/AndroidRuntime(486): java.l
  6. Android如何打印std::cout/printf(重定向stdout)
  7. android 摄像头对焦,zoom的通知事件回调,告诉java应用层已经对焦完
  8. 获取apk签名信息
  9. 在Android应用中实现Google搜索的例子

随机推荐

  1. Android(安卓)API Guides----Adding Cust
  2. Android(安卓)中的拿来主义(编译,反编译,AX
  3. Android[安卓] 版Air Video 远程播放电脑
  4. Android(安卓)沉浸式模式与常见状态栏和
  5. MAC Android(安卓)Studio编写Android(安
  6. 理解Android(安卓)Java垃圾回收机制
  7. Android获取手机WiFi IP地址,MAC地址和网
  8. 超详细的Android系统50大必备秘籍分享
  9. Android(安卓)apk安装过程及Java、JNI读
  10. 第七章 ARM 反汇编基础(三)(ARM 原生程序的