怎么样调用android系统的照相机 ? 怎么样调用android系统的照相机 ? 谁给个能运行的程序啊??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你个代码看看吧:import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.PixelFormat;import android.hardware.Camera;import android.hardware.Camera.PictureCallback;import android.os.Bundle;import android.view.KeyEvent;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.Window;public class Activity01 extends Activity{ private Preview mPreview; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); // Create our Preview view and set it as the content of our activity. mPreview = new Preview(this); setContentView(mPreview); } public boolean onKeyUp(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: mPreview.takePicture(); break; } return true; }}/* Preview-显示Preview */class Preview extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder mHolder; Camera mCamera; Bitmap CameraBitmap; Preview(Context context) { super(context); mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { /* 启动Camera */ mCamera = Camera.open(); try { mCamera.setPreviewDisplay(holder); } catch (IOException exception) { /* 释放mCamera */ mCamera.release(); mCamera = null; // TODO: add more exception handling logic here } } public void surfaceDestroyed(SurfaceHolder holder) { /* 停止预览 */ mCamera.stopPreview(); mCamera = null; } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { /* 构建Camera.Parameters对相机的参数进行设置 */ Camera.Parameters parameters = mCamera.getParameters(); /* 设置拍照的图片格式 */ parameters.setPictureFormat(PixelFormat.JPEG); /* 设置Preview的尺寸 */ parameters.setPreviewSize(320, 480); /* 设置图像分辨率 */ //parameters.setPictureSize(320, 480); /* 设置相机采用parameters */ mCamera.setParameters(parameters); /* 开始预览 */ mCamera.startPreview(); } /* 拍照片 */ public void takePicture() { if (mCamera != null) { mCamera.takePicture(null, null, jpegCallback); } } /* 拍照后输出图片 */ private PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] _data, Camera _camera) { // TODO Handle JPEG image data CameraBitmap = BitmapFactory.decodeByteArray(_data, 0, _data.length); File myCaptureFile = new File("/sdcard/camera1.jpg"); try { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile)); CameraBitmap.compress(Bitmap.CompressFormat.JPEG, 80, bos); bos.flush(); bos.close(); /* 将拍到的图片绘制出来 */ Canvas canvas= mHolder.lockCanvas(); canvas.drawBitmap(CameraBitmap, 0, 0, null); mHolder.unlockCanvasAndPost(canvas); } catch (Exception e) { e.getMessage(); } } };} 楼主,你能不能告诉我怎样调用系统带的那个照相功能,能不能简简单单地使用mCamera = Camera.open();这样?我拿真机试程序总是崩掉不需要什么预览,存储图片什么的,就仅仅跳转到系统自带的拍照界面去 解决了,原来就是Intent intent = new Intent(); //调用照相机intent.setAction("android.media.action.STILL_IMAGE_CAMERA"); startActivity(intent); 解决了,原来就是Intent intent = new Intent(); //调用照相机intent.setAction("android.media.action.STILL_IMAGE_CAMERA"); startActivity(intent); 按楼主那样...如果拍完了 我想返回到我自己的一个activity 并且用一个imgaeview显示刚才拍的照片 请问怎么实现? 谢啦 也需要在AndroidManifest.xml里面注册相机的信息的<uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <application android:icon="@drawable/icon" android:label="@string/app_name">中间两行.... public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); context=this; total=(total)getApplicationContext();// setContentView(R.layout.main); if(!android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){ showdialog("提示", "请检查存储卡是否正确安装", "确定"); } else{ intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 100); } } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != RESULT_OK) return; if(requestCode==100){ Bundle bundle=data.getExtras(); Bitmap bitmap=(Bitmap)bundle.get("data");//得到bitmap total.setbtm(bitmap);//放到全局变量中 intent.setClass(context, photo_type.class); startActivity(intent); finish(); } }希望有帮助 26楼的 如果想添加预览功能 是不是要创建一个新的Activity才行啊 void auotFocus()是不是就是当相机移到某个位置时,他会自动对焦? 拍了照片怎么显示在自己ImageView啊 同问怎么显示到mageView上啊 手机毒霸去广告功能分析三:java之dex注入 有谁能告诉我,为什么google开发者网经常出现网页错误? adb logcat怎么同时输出入两个模拟器的log android txt阅读器分章节的思路 wifi问题 停止运行问题 android新闻客户端怎么做? eclipse引入第三方so库 标题栏半透明,并能看到下面的信息,怎么做? sqlite插入数据库并更新数据失败 我是刚学安卓的!我想了解android:id="@+id/fl"有什么作用 android 短信 草稿箱问题
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;public class Activity01 extends Activity
{
private Preview mPreview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // Create our Preview view and set it as the content of our activity.
mPreview = new Preview(this);
setContentView(mPreview);
}
public boolean onKeyUp(int keyCode, KeyEvent event)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
mPreview.takePicture();
break;
}
return true;
}
}/* Preview-显示Preview */
class Preview extends SurfaceView implements SurfaceHolder.Callback
{
SurfaceHolder mHolder;
Camera mCamera;
Bitmap CameraBitmap;
Preview(Context context)
{
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
} public void surfaceCreated(SurfaceHolder holder)
{
/* 启动Camera */
mCamera = Camera.open();
try
{
mCamera.setPreviewDisplay(holder);
}
catch (IOException exception)
{
/* 释放mCamera */
mCamera.release();
mCamera = null;
// TODO: add more exception handling logic here
}
} public void surfaceDestroyed(SurfaceHolder holder)
{
/* 停止预览 */
mCamera.stopPreview();
mCamera = null;
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
{
/* 构建Camera.Parameters对相机的参数进行设置 */
Camera.Parameters parameters = mCamera.getParameters();
/* 设置拍照的图片格式 */
parameters.setPictureFormat(PixelFormat.JPEG);
/* 设置Preview的尺寸 */
parameters.setPreviewSize(320, 480);
/* 设置图像分辨率 */
//parameters.setPictureSize(320, 480);
/* 设置相机采用parameters */
mCamera.setParameters(parameters);
/* 开始预览 */
mCamera.startPreview();
}
/* 拍照片 */
public void takePicture()
{
if (mCamera != null)
{
mCamera.takePicture(null, null, jpegCallback);
}
}
/* 拍照后输出图片 */
private PictureCallback jpegCallback = new PictureCallback()
{
public void onPictureTaken(byte[] _data, Camera _camera)
{
// TODO Handle JPEG image data
CameraBitmap = BitmapFactory.decodeByteArray(_data, 0, _data.length);
File myCaptureFile = new File("/sdcard/camera1.jpg");
try
{
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
CameraBitmap.compress(Bitmap.CompressFormat.JPEG, 80, bos);
bos.flush();
bos.close();
/* 将拍到的图片绘制出来 */
Canvas canvas= mHolder.lockCanvas();
canvas.drawBitmap(CameraBitmap, 0, 0, null);
mHolder.unlockCanvasAndPost(canvas);
}
catch (Exception e)
{
e.getMessage();
}
}
};
}
mCamera = Camera.open();这样?
我拿真机试程序总是崩掉
不需要什么预览,存储图片什么的,就仅仅跳转到系统自带的拍照界面去
Intent intent = new Intent(); //调用照相机
intent.setAction("android.media.action.STILL_IMAGE_CAMERA");
startActivity(intent);
Intent intent = new Intent(); //调用照相机
intent.setAction("android.media.action.STILL_IMAGE_CAMERA");
startActivity(intent);
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application android:icon="@drawable/icon" android:label="@string/app_name">中间两行....
super.onCreate(savedInstanceState);
context=this;
total=(total)getApplicationContext();
// setContentView(R.layout.main);
if(!android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){
showdialog("提示", "请检查存储卡是否正确安装", "确定");
}
else{
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 100);
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK)
return;
if(requestCode==100){
Bundle bundle=data.getExtras();
Bitmap bitmap=(Bitmap)bundle.get("data");//得到bitmap
total.setbtm(bitmap);//放到全局变量中
intent.setClass(context, photo_type.class);
startActivity(intent);
finish();
}
}
希望有帮助