<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.entel.research"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".TakePicture"          android:configChanges="orientation|keyboardHidden"                android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"                android:screenOrientation="landscape"                android:clearTaskOnLaunch="true"                                   android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>    <uses-permission android:name="android.permission.CAMERA"/>     <uses-sdk android:minSdkVersion="3" /></manifest> 


<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/camera"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="horizontal" >    <SurfaceView        android:id="@+id/surface_camera"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:layout_weight="1"        android:orientation="horizontal"        android:screenOrientation="landscape" >    </SurfaceView>    <ImageButton        android:id="@+id/shutter"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true"        android:layout_marginRight="5dip"        android:layout_marginTop="5dip"        android:clickable="true"        android:focusable="true"        android:src="@drawable/ic_camera_indicator_photo" >    </ImageButton>    <ImageButton        android:id="@+id/finish"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_alignParentRight="true"        android:layout_marginBottom="5dip"        android:layout_marginRight="5dip"        android:scaleType="center"        android:src="@drawable/shezhi" >    </ImageButton></RelativeLayout>


package com.entel.research;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.PixelFormat;import android.hardware.Camera;import android.hardware.Camera.PictureCallback;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.view.WindowManager;import android.widget.ImageButton;import android.widget.Toast;public class TakePicture extends Activity implements SurfaceHolder.Callback{private Camera mCamera;private boolean mPreviewRunning = true;public static final int ITEM0 = Menu.FIRST;public static final int ITEM1 = Menu.FIRST + 1;public static final int ITEM2 = Menu.FIRST + 2;byte[] data;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);getWindow().setFormat(PixelFormat.TRANSLUCENT);requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.com_camera1_main);SurfaceView mSurfaceView;ImageButton shutter;ImageButton finish;mSurfaceView = (SurfaceView) findViewById(R.id.surface_camera);shutter = (ImageButton) findViewById(R.id.shutter);finish = (ImageButton) findViewById(R.id.finish);shutter.setOnClickListener(shutter1);finish.setOnClickListener(finish1);SurfaceHolder mSurfaceHolder = mSurfaceView.getHolder();mSurfaceHolder.addCallback(this);mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);}@Overridepublic boolean onCreateOptionsMenu(Menu menu){super.onCreateOptionsMenu(menu);menu.add(0, ITEM0, 0, "摄像");menu.add(0, ITEM1, 1, "设置");menu.add(0, ITEM2, 2, "退出");menu.findItem(ITEM1);return true;}private OnClickListener shutter1 = new OnClickListener(){@Overridepublic void onClick(View ic_camera_indicator_photo){mCamera.takePicture(shutter2, raw, jpegCallback);}};private OnClickListener finish1 = new OnClickListener(){@Overridepublic void onClick(View shezhi){TakePicture.super.openOptionsMenu();}};@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int w, int h){if (mPreviewRunning){mCamera.stopPreview();}Camera.Parameters p = mCamera.getParameters();p.setPreviewSize(w, h);p.set("rotation", 90);mCamera.setParameters(p);try{mCamera.setPreviewDisplay(holder);}catch (IOException e){e.printStackTrace();}mCamera.startPreview();mPreviewRunning = true;}@Overridepublic void surfaceCreated(SurfaceHolder holder){mCamera = Camera.open();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder){mCamera.stopPreview();mPreviewRunning = false;mCamera.release();}Camera.PictureCallback raw = new Camera.PictureCallback(){public void onPictureTaken(byte[] imageData, Camera c){}};private PictureCallback jpegCallback = new PictureCallback(){public void onPictureTaken(byte[] _data, Camera _camera){/* onPictureTaken传入的第一个参数即为相片的byte */data = _data;showDialog(1);}};Camera.ShutterCallback shutter2 = new Camera.ShutterCallback(){public void onShutter(){}};private Dialog buildDialog(Context context){AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle("是否储存照片");builder.setPositiveButton("存储", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface arg0, int arg1){savepicture(data);}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){mCamera.startPreview();}});return builder.create();};public Dialog onCreateDialog(int i){switch (i){case 1:return buildDialog(TakePicture.this);}return null;};public void savepicture(byte[] _data){Bitmap bm = BitmapFactory.decodeByteArray(_data, 0, _data.length);/* 创建新文件 */File myCaptureFile = new File("/sdcard/" + System.currentTimeMillis()+ ".jpg");try{BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));bm.compress(Bitmap.CompressFormat.JPEG, 80, bos); /* 采用压缩转档方法 */bos.flush();bos.close();Thread.sleep(3000);mCamera.startPreview();}catch (Exception e){Log.e("camera", e.getMessage());}Toast.makeText(TakePicture.this,"照片存储路径:" + "/sdcard/" + System.currentTimeMillis() + ".jpg",Toast.LENGTH_LONG).show();}public boolean onOptionsItemSelected(MenuItem item){switch (item.getItemId()){case ITEM0:break;case ITEM1:break;case ITEM2:System.exit(0);break;}return super.onOptionsItemSelected(item);}}


更多相关文章

  1. Android手机号、串号获取
  2. android Wifi自动连接
  3. android Wifi自动连接
  4. android照相及照片上传
  5. Android(安卓)SharePreference 使用 储存
  6. Android(安卓)封装SharedPreference工具类
  7. Android之使用摄像头拍照
  8. android am命令
  9. android webkit学习笔记1---url的load过程

随机推荐

  1. Android(安卓)简单项目
  2. Android 中Animation简单例子
  3. Pro Android 4 第三章 理解Android中的资
  4. Android 分析 Android 应用结构
  5. Android和iOS自带的人脸检测API
  6. Android requires .class compatibility
  7. Binder详解
  8. Android 应用程序开发基础
  9. 【安卓开发】UI设计基础4:用网格布局 Grid
  10. 开发人员应该了解的 Android(安卓)常用术