【发布时间】:2011-06-23 15:48:02
【问题描述】:
我想创建一个与默认相机应用程序相同的应用程序,只需稍作修改(即禁用视频或添加额外功能)。我该怎么做?
我只是获取相机应用程序的源代码并对其进行修改还是有办法扩展Android系统的核心组件?
【问题讨论】:
标签: android components
我想创建一个与默认相机应用程序相同的应用程序,只需稍作修改(即禁用视频或添加额外功能)。我该怎么做?
我只是获取相机应用程序的源代码并对其进行修改还是有办法扩展Android系统的核心组件?
【问题讨论】:
标签: android components
bizso99,
您可以从您的Activity 调用Intent,这只是相机无视频功能,如下所示:
public void imageFromCamera() {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, TAKE_PICTURE);
}
这将返回图像的较小缩略图版本。如果你想要全尺寸,你需要像这样使用Mediastore.EXTRA_OUTPUT:
public void imageFromCamera() {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
mImageFile = new File(pathToStoreImage); //file where image will be stored
mSelectedImagePath = mImageFile.getAbsolutePath(); //path to file where image will be stored
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
startActivityForResult(intent, TAKE_PICTURE);
}
然后就可以在onActivityResult()接收图片了
【讨论】:
Canvas 对象上显示流,并使用 Camera Class 手动处理所有内容。
Android 是开源的,因此您可以下载 android 中每个股票应用程序的源代码(不适用于地图等谷歌应用程序)。事实上,您可以从the android git repo 下载最新的原始相机应用程序。只有下载整个 android-source 才能构建 apk。有关如何构建 android-source 的概述,请参阅this howto。您可以根据需要修改源代码。
我很确定在不复制源代码的情况下扩展相机应用程序是不可能的,因为相机 API 没有插件 API(或类似的)。
【讨论】: