资源简介

博客地址:http://blog.csdn.net/xiaohao0724/article/details/68488145 Android自定义照相机 CustomCamera

资源截图

代码片段和文件信息

package com.havorld.customcamera;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.ImageFormat;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.Size;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.OrientationEventListener;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.onclickListener;
import android.widget.frameLayout;
import android.widget.ImageButton;

import com.havorld.customcamera.utils.PreviewSizeUtil;
/**
 * 博客地址:http://blog.csdn.net/xiaohao0724/article/details/68488145
 *
 */
public class CustomCameraActivity extends Activity implements onclickListener
SurfaceHolder.Callback Camera.PictureCallback {

private Camera camera;
private static final String TAG = “Havorld“;
private Camera.Parameters parameters;
private int orientationDegrees = 90;
private frameLayout frameLayout;
private ImageButton imageButton reset ok;
/** 路径: /storage/emulated/0/Pictures/ */
private String savePath;
private String path;
private SurfaceHolder surfaceHolder;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
savePath = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
+ File.separator;
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
surfaceView.setonclickListener(this);

frameLayout = (frameLayout) findViewById(R.id.frameLayout);
imageButton = (ImageButton) findViewById(R.id.imageButton);
reset = (ImageButton) findViewById(R.id.reset);
ok = (ImageButton) findViewById(R.id.ok);

frameLayout.setonclickListener(this);
imageButton.setonclickListener(this);
reset.setonclickListener(this);
ok.setonclickListener(this);

// 到SurfaceHolderSurfaceHolder相当于一个监听器可以通过CallBack来监听 SurfaceView上的变化。
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
// 为了实现照片预览功能,需要将SurfaceHolder的类型设置为PUSH这样画图缓存就由Camera类来管理,画图缓存是独立于Surface的
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
startOrientationchangeListener();
}

private final void startOrientationchangeListener() {

OrientationEventListener mOrEventListener = new OrientationEventListener(
this) {
@Override
public void onOrientationchanged(int rotation) {

if (((rotation >= 0) && (rotation <= 45)) || (rotation >= 315)) {

orientationDegrees = 90;
} else if ((rotation > 45) && (rotation < 135)) {

orientationDegrees = 180;
} else if ((rotation >= 135) && (rotation <= 225)) {

orientationDeg

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        475  2017-03-28 20:59  CustomCamera\.classpath

     文件        848  2017-03-27 14:16  CustomCamera\.project

     文件        177  2017-03-27 14:16  CustomCamera\.settings\org.eclipse.jdt.core.prefs

     文件       1622  2017-03-30 23:02  CustomCamera\AndroidManifest.xml

     文件      51394  2017-03-27 14:16  CustomCamera\ic_launcher-web.png

     文件    1422188  2017-03-27 14:16  CustomCamera\libs\android-support-v4.jar

     文件        781  2017-03-27 14:16  CustomCamera\proguard-project.txt

     文件        563  2017-04-06 09:49  CustomCamera\project.properties

     文件       7658  2017-03-27 14:16  CustomCamera\res\drawable-hdpi\ic_launcher.png

     文件       3777  2017-03-27 14:16  CustomCamera\res\drawable-mdpi\ic_launcher.png

     文件       1070  2017-03-29 17:15  CustomCamera\res\drawable-xhdpi\camera.png

     文件      12516  2017-03-27 14:16  CustomCamera\res\drawable-xhdpi\ic_launcher.png

     文件       4112  2017-03-29 17:22  CustomCamera\res\drawable-xhdpi\ok.png

     文件       1973  2017-03-29 17:09  CustomCamera\res\drawable-xhdpi\pf.png

     文件       1896  2017-03-27 16:13  CustomCamera\res\drawable-xhdpi\reset.png

     文件        543  2017-03-27 15:22  CustomCamera\res\drawable-xhdpi\start.png

     文件       1823  2017-03-27 15:22  CustomCamera\res\drawable-xhdpi\stop.png

     文件       2193  2017-03-27 15:14  CustomCamera\res\drawable-xhdpi\stop_bc.png

     文件      24777  2017-03-27 14:16  CustomCamera\res\drawable-xxhdpi\ic_launcher.png

     文件      57506  2017-03-30 16:06  CustomCamera\res\drawable-xxhdpi\timg.jpg

     文件       1826  2017-03-29 17:09  CustomCamera\res\layout\activity_camera.xml

     文件        725  2017-03-30 23:03  CustomCamera\res\layout\activity_main.xml

     文件       1667  2017-03-30 15:38  CustomCamera\res\layout\activity_second.xml

     文件        374  2017-03-27 14:16  CustomCamera\res\menu\main.xml

     文件        220  2017-03-27 14:16  CustomCamera\res\values\dimens.xml

     文件        229  2017-03-27 14:16  CustomCamera\res\values\strings.xml

     文件        697  2017-03-27 14:16  CustomCamera\res\values\styles.xml

     文件        334  2017-03-27 14:16  CustomCamera\res\values-v11\styles.xml

     文件        391  2017-03-27 14:16  CustomCamera\res\values-v14\styles.xml

     文件        381  2017-03-27 14:16  CustomCamera\res\values-w820dp\dimens.xml

............此处省略29个文件信息

评论

共有 条评论