Android SDK开发范例大全10

  • G7_483065
    了解作者
  • 7.6MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-27 01:56
    上传日期
Android SDK开发范例大全,能让你对android SDK, 有初步的了解,在慢慢的学习中,会让你感受到快乐!
Android SDK开发范例大全CH10.rar
内容介绍
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学习
      Android学习Android学习Android学习Android学习Android学习Android学习
    • Android678
      Android678Android678Android678Android678Android678Android678Android678Android678Android678Android678
    • android 例子
      android 例子android 例子android 例子android 例子android 例子
    • android图片
      android精美小图片android精美小图片android精美小图片android精美小图片
    • android课件
      清华老师上课的android课件。ch_01android概述ch_02android开发基础ch_03资源的访问ch_04android用户界面ch_05Ativity和Intent。其他自己看。
    • AndroidKiller
      安卓App反编译工具AndroidKiller\AndroidKiller\AndroidKiller
    • AndroidSample
      Android示例 这是一个示例Android应用,用于降低Google Play服务和Android Volley的使用率。 有关更多详细信息,请参阅以下链接: Google Play服务: Android凌空抽射:
    • android source
      android 源代码 source android 源代码 source android 源代码 source android 源代码 source android 源代码 source android 源代码 source android 源代码 source
    • Android 教程
      Android 案例 教程,Android 案例 教程,Android 案例 教程,Android 案例 教程,Android 案例 教程,Android 案例 教程,Android 案例 教程,Android 案例 教程,Android 案例 教程,Android 案例 教程,Android ...
    • android资料
      Android程序员指南 Android_UI开发专题 Android程序开发初级教程 android的五大类各种常用类的资料整理 Android高手进阶教程