Camera系统中设置picture大小菜单的流程分析(一)

在Android平台上,设置菜单有两种方式:通过XML布局来实现和通过Menu.add方法实现。Camera系统中的菜单可以说是通过XML布局来实现的,但它的实现过程并非像一般文章里介绍的那样简单。所以,在此我就以设置capture时picture大小为例,将Camera系统中菜单的设置流程作以简单介绍。

1、资源文件分析

在packages/apps/Camera/res/xml/有两个xml文件,分别为Camera_preferences.xml和Video_preferences.xml。这两个文件中列举了Camera和Video Camera两种模式下的不同菜单信息。以Camera_preferences.xml为例,其中关于picture大小的菜单项信息为:

<ListPreference camera:key="pref_camera_picturesize_key"

camera:title="@string/pref_camera_picturesize_title"

camera:entries="@array/pref_camera_picturesize_entries"

camera:entryValues="@array/pref_camera_picturesize_entryvalues" />

 

pref_camera_picturesize_title的定义在packages/apps/Camera/res/values/strings.xml中,其中有如下的定义:

<!--

 Settings screen, Picture size title

  -->

  <item>@string/pref_camera_picturesize_entry_2592x1936</item>

  <item>@string/pref_camera_picturesize_entry_2592x1936</item>

  <item>@string/pref_camera_picturesize_entry_2048x1536</item>

  <item>@string/pref_camera_picturesize_entry_1600x1200</item>

  <item>@string/pref_camera_picturesize_entry_1024x768</item>

  <item>@string/pref_camera_picturesize_entry_320x240</item>

  </string-array>

pref_camera_picturesize_entryvalues的定义也在

packages/apps/Camera/res/values/arrays.xml中,其中有如下的定义:

-<string-array name="pref_camera_picturesize_entryvalues" translatable="false">

  <item>2592x1944</item>

  <item>2592x1936</item>

  <item>2048x1536</item>

  <item>1600x1200</item>

  <item>1024x768</item>

  <item>320x240</item>

  </string-array>

由这些定义,我们可以看出,Android的Camera应用程序支持五种图片大小。但是硬件并非都支持这些大小。所以最终的菜单中只会显示这五种大小当中底层硬件所支持的,如果硬件支持的大小与其中任何一种都不匹配,则不会显示出“Picture size”菜单。


转载:http://blog.csdn.net/wxzking/article/details/6225702

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值