package irdc.ex10_05;
import java.io.IOException;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.data.QRCodeImage;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.net.Uri;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.Window;
import android.view.ViewGroup.LayoutParams;
import android.webkit.URLUtil;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class EX10_05 extends Activity implements SurfaceHolder.Callback
{
/* 建立私有Camera对象 */
private Camera mCamera01;
private Button mButton01, mButton02, mButton03;
/* 作为review照下来的相片之用 */
private ImageView mImageView01;
private String TAG = "HIPPO_DEBUG";
private SurfaceView mSurfaceView01;
private SurfaceHolder mSurfaceHolder01;
/* 预设相机预览模式为false */
private boolean bIfPreview = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/* 使应用程序全屏幕执行,不使用title bar */
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
DrawCaptureRect mDraw = new DrawCaptureRect
(
EX10_05.this,
// PORTRAIT
//110, 10, 100, 100,
190, 10, 100, 100,
//181, 1, 118, 118,
getResources().getColor(R.drawable.lightred)
);
addContentView(mDraw, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
/* 取得屏幕解析像素 */
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
mImageView01 = (ImageView) findViewById(R.id.myImageView1);
/* 以SurfaceView作为相机Preview之用 */
mSurfaceView01 = (SurfaceView) findViewById(R.id.mSurfaceView1);
/* 系结SurfaceView,取得SurfaceHolder对象 */
mSurfaceHolder01 = mSurfaceView01.getHolder();
/* Activity必须实作SurfaceHolder.Callback */
mSurfaceHolder01.addCallback(EX10_05.this);
/* 额外的设定预览大小设定,在此不使用 */
//mSurfaceHolder01.setFixedSize(160, 120);
/*
* 以SURFACE_TYPE_PUSH_BUFFERS(3)
* 作为SurfaceHolder显示型态
* */
mSurfaceHolder01.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mButton01 = (Button)findViewById(R.id.myButton1);
mButton02 = (Button)findViewById(R.id.myButton2);
mButton03 = (Button)findViewById(R.id.myButton3);
/* 开启相机及Preview */
mButton01.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
/* 自订初始化开启相机函数 */
initCamera();
}
});
/* 停止Preview及相机 */
mButton02.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
/* 自定义重置相机,并关闭相机预览函数 */
resetCamera();
}
});
/* 拍照 */
mButton03.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
/* 自定义拍照函数 */
takePicture();
}
});
}
/* 自定义初始相机函数 */
private void initCamera()
{
if(!bIfPreview)
{
/* 若相机非在预览模式,则开启相机 */
try
{
/*
* The Heap 是应用程序在手机里执行所配置的空间
* 当超过预设的16 MB(每一个应用程序)时就会导致 "Out of memory"的错误
* 目前看来是Cupcake(AVD 1.5)才会发生
* Connect E from ICameraClient 0x....
* new client (0x...) sttempting to connect - rejected
* */
mCamera01 = Camera.open();
}
catch(Exception e)
{
Log.e(TAG, e.getMessage());
}
}
if (mCamera01 != null && !bIfPreview)
{
try
{
Log.i(TAG, "inside the camera");
mCamera01.setPreviewDisplay(mSurfaceHolder01);
/* 建立Camera.Parameters物件 */
Camera.Parameters parameters = mCamera01.getParameters();
/* 设定相片格式为JPEG */
parameters.setPictureFormat(PixelFormat.JPEG);
//parameters.setPreviewSize(w, h);
List<Camera.Size> s=parameters.getSupportedPreviewSizes();
try
{
if(s!=null)
{
for(int i=0;i<s.size();i++)
{
Log.i(TAG,""+(((Camera.Size)s.get(i)).height)+"/"+(((Camera.Size)s.get(i)).width));
}
}
parameters.setPreviewSize(320, 240);
//parameters.setPreviewSize(176, 144);
/* 在2.0模拟器中,设定不支持的PreviewSize将造成Exception */
s=parameters.getSupportedPictureSizes();
try
{
if(s!=null)
{
for(int i=0;i<s.size();i++)
{
Log.i(TAG,""+(((Camera.Size)s.get(i)).height)+"/"+(((Camera.Size)s.get(i)).width));
}
}
/* 在2.0模拟器中,设定不支持的PictureSize将造成Exception */
parameters.setPictureSize(512, 384);
//parameters.setPictureSize(213, 350);
/* 将Camera.Parameters设定予Camera */
mCamera01.setParameters(parameters);
/* setPreviewDisplay唯一的参数为SurfaceHolder */
mCamera01.setPreviewDisplay(mSurfaceHolder01);
/* 立即执行Preview */
mCamera01.startPreview();
bIfPreview = true;
Log.i(TAG, "startPreview");
}
catch (Exception e)
{
Log.i(TAG, e.toString());
e.printStackTrace();
}
}
catch (Exception e)
{
Toast.makeText
(
EX10_05.this,
"initCamera error.",
Toast.LENGTH_LONG
).show();
e.printStackTrace();
}
}
catch (IOException e)
{
// TODO Auto-generated catch block
mCamera01.release();
mCamera01 = null;
Log.i(TAG, e.toString());
e.printStackTrace();
}
}
}
/* 拍照撷取影像 */
private void takePicture()
{
if (mCamera01 != null && bIfPreview)
{
/* 呼叫takePicture()方法拍照 */
mCamera01.takePicture(shutterCallback, rawCallback, jpegCallback);
}
}
/* 相机重置 */
private void resetCamera()
{
if (mCamera01 != null && bIfPreview)
{
try
{
mCamera01.stopPreview();
/* 扩展学习,释放Camera对象 */
//mCamera01.release();
bIfPreview = false;
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
private ShutterCallback shutterCallback = new ShutterCallback()
{
public void onShutter()
{
// Shutter has closed
}
};
p
没有合适的资源?快使用搜索试试~ 我知道了~
Android SDK开发范例大全(第二版)光盘源码
共5126个文件
class:1819个
xml:789个
java:441个
5星 · 超过95%的资源 需积分: 13 193 下载量 167 浏览量
2011-09-11
12:25:04
上传
评论 1
收藏 36.2MB ZIP 举报
温馨提示
Android SDK开发范例大全(第二版)光盘源码。之前在网上也是下载过这本的电子书及其源码,结果发现都不全,现在自己买了一本,把光盘资料传上来跟大家共享。
资源推荐
资源详情
资源评论
收起资源包目录
Android SDK开发范例大全(第二版)光盘源码 (5126个子文件)
start.3gp 412KB
resources.ap_ 1.76MB
resources.ap_ 1.02MB
resources.ap_ 730KB
resources.ap_ 721KB
resources.ap_ 636KB
resources.ap_ 573KB
resources.ap_ 520KB
resources.ap_ 452KB
resources.ap_ 423KB
resources.ap_ 265KB
resources.ap_ 205KB
resources.ap_ 188KB
resources.ap_ 187KB
resources.ap_ 187KB
resources.ap_ 186KB
resources.ap_ 167KB
resources.ap_ 124KB
resources.ap_ 87KB
resources.ap_ 69KB
resources.ap_ 59KB
resources.ap_ 58KB
resources.ap_ 56KB
resources.ap_ 42KB
resources.ap_ 39KB
resources.ap_ 39KB
resources.ap_ 36KB
resources.ap_ 28KB
resources.ap_ 25KB
resources.ap_ 24KB
resources.ap_ 23KB
resources.ap_ 23KB
resources.ap_ 22KB
resources.ap_ 20KB
resources.ap_ 18KB
resources.ap_ 15KB
resources.ap_ 15KB
resources.ap_ 15KB
resources.ap_ 15KB
resources.ap_ 15KB
resources.ap_ 14KB
resources.ap_ 13KB
resources.ap_ 13KB
resources.ap_ 13KB
resources.ap_ 13KB
resources.ap_ 12KB
resources.ap_ 12KB
resources.ap_ 12KB
resources.ap_ 12KB
resources.ap_ 12KB
resources.ap_ 12KB
resources.ap_ 12KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 11KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 10KB
resources.ap_ 9KB
resources.ap_ 9KB
resources.ap_ 9KB
resources.ap_ 8KB
resources.ap_ 8KB
resources.ap_ 8KB
resources.ap_ 8KB
resources.ap_ 8KB
resources.ap_ 8KB
resources.ap_ 8KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
resources.ap_ 7KB
共 5126 条
- 1
- 2
- 3
- 4
- 5
- 6
- 52
wuyiu_bing
- 粉丝: 9
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页