当前位置: 首页 > news >正文

单位做网站注意什么问题福田祥菱m2柴油版

单位做网站注意什么问题,福田祥菱m2柴油版,wordpress 底部小工具,西安网站建设哪个平台好相机现在已经不仅仅是手机必备神器了#xff0c;甚至相机的拍照质量已经是很多人买手机的首选条件了。而对于相机而言主要有两大功能#xff1a;拍照片和拍视频。Android 为此两种方式#xff1a; 相机 intent相机 API 本节我们就一起来看看相机的具体用法。 1. 打开 Camer…相机现在已经不仅仅是手机必备神器了甚至相机的拍照质量已经是很多人买手机的首选条件了。而对于相机而言主要有两大功能拍照片和拍视频。Android 为此两种方式 相机 intent相机 API 本节我们就一起来看看相机的具体用法。 1. 打开 Camera 的两大方式 目前市面上绝大多数的 Android 手机是有前后两个摄像头当然有部分特殊机型会存在其他的情况本节主要针对双摄像头设备做解析。 在前面有提到过通常使用相机有两大方式“Intent”和“API”。最大的差别就是“Intent”是跳转到系统提供的相机页面而使用“API”是封闭在自己的 App 中使用相机。我们可以通过“Intent”直接打开系统提供的相机 Activity在用户拍摄完成之后系统 Activity 会通知我们拍摄结果然后拿到拍摄的图片或者视频。而直接通过 API 就需要我们去开发一整套相机的控制页面自行完成照片 / 视频的拍摄进而直接拿到用户拍摄的结果。 2. Camera 的基本用法 我们分别看看这两种打开方式的使用方法 2.1 使用 Intent 打开 通过使用 MediaStore 类提供的两个 Intnet 常量可以直接将相机操作托管给 Android 系统而无需创建 Camera 实例 ACTION_IMAGE_CAPTURE 拍摄照片ACTION_VIDEO_CAPTURE 拍摄视频 2.2 使用 API 打开 采用 API 打开会让整个相机程序都封闭在自己的 APP 中完成这里需要明确几个概念 Camera 类 使用 API 之前需要创建 Camera 实例然后通过 API 来初始化 Camera 进而拿到实时拍摄的画面 SurfaceView 用来渲染视频实时画面的 View 采用 Intent 打开相机的方法非常简单接下来我们全程使用 Camera API 来实现一下相机功能。 3. Camera 使用示例 使用 API 来拍照会相对比较麻烦一点首先需要获取权限那么对于 Android 6.0 版本以上的系统除了要在 Manifest 里面加入 Camera 权限之外还需要动态获取权限这个可能大家在用一些比较老的教程示例时会踩坑。 获取到权限就可以打开 Camera 了然后拿到 Camera 实例设置一个 SurfaceView 来渲染预览页面在用户需要拍照的时候调用 Camera 的takePicture()方法获取当前帧最后保存输出到文件中或者在新的 Activity 中展示这样就算完成了一次拍照闭环。 3.1 Camera 拍照逻辑 首先看看整个拍照的代码如下 package com.emercy.myapplication;import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.hardware.Camera; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.widget.Button; import android.widget.Toast;import java.io.File; import java.io.FileOutputStream; import java.io.IOException;public class MainActivity extends Activity {public static final String CAMERA_PATH path;public static final String CAMERA_IMG img;private SurfaceView mSurfaceView;private Button mTakePhoto;private Camera mCamera null;private SurfaceHolder.Callback mCallback new SurfaceHolder.Callback() {Overridepublic void surfaceCreated(SurfaceHolder holder) {startPreview();}Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}Overridepublic void surfaceDestroyed(SurfaceHolder holder) {stopPreview();}};Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getPermission();bindViews();}/*** 获取权限*/private void getPermission() {if (Build.VERSION.SDK_INT 22) {if (checkSelfPermission(android.Manifest.permission.CAMERA) ! PackageManager.PERMISSION_GRANTED) {//先判断有没有权限 没有就在这里进行权限的申请requestPermissions(new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);} else {//说明已经获取到摄像头权限了Log.i(Camera, 已经获取了权限);}} else {//这个说明系统版本在6.0之下不需要动态获取权限。Log.i(Camera, 这个说明系统版本在6.0之下不需要动态获取权限。);}}private void bindViews() {mSurfaceView (SurfaceView) findViewById(R.id.sfv_preview);mTakePhoto (Button) findViewById(R.id.btn_take);mSurfaceView.getHolder().addCallback(mCallback);mTakePhoto.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {mCamera.takePicture(null, null, new Camera.PictureCallback() {Overridepublic void onPictureTaken(byte[] data, Camera camera) {String path;if (TextUtils.isEmpty(path savePhoto(data))) {Intent it new Intent(MainActivity.this, PreviewActivity.class);it.putExtra(CAMERA_PATH, path);startActivity(it);} else {Toast.makeText(MainActivity.this, 拍照失败, Toast.LENGTH_SHORT).show();}}});}});}private String savePhoto(byte[] bytes) {try {File file File.createTempFile(CAMERA_IMG, );FileOutputStream fos new FileOutputStream(file);fos.write(bytes);fos.flush();fos.close();return file.getAbsolutePath();} catch (IOException e) {e.printStackTrace();}return ;}private void startPreview() {mCamera Camera.open();try {mCamera.setPreviewDisplay(mSurfaceView.getHolder());mCamera.setDisplayOrientation(90); // 让相机旋转90度mCamera.startPreview();} catch (IOException e) {e.printStackTrace();}}private void stopPreview() {mCamera.stopPreview();mCamera.release();mCamera null;} }里面涉及到的几个新概念大家需要注意然后记得在SurfaceHolder.Callback()的surfaceCreated()中启动预览在surfaceDestroyed()方法中要停止预览其他的基本上按照步骤来不会有什么问题。 3.2 相机布局 目前市面上有很多相机 App各种布局千变万化大家完全可以按照自己的喜好来进行设计。这里只做一个拍照预览和拍照按钮。 FrameLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalSurfaceViewandroid:idid/sfv_previewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent /Buttonandroid:idid/btn_takeandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitybottom|centerandroid:text拍照 //FrameLayout3.3 照片回看页面 点击“拍照” Button 获取到当前画面之后我们可以就可以按照自己的逻辑对图片进行操作了。比如可以通过 Http 上传、通过 Socket 发送给其他设备、保存到本地、或者传递给其他 App 等。本例子中将图片传递给另一个 Activity 专门用于查看图片下面是 PhotoActivity 的代码 package com.emercy.myapplication;import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.widget.ImageView;import java.io.File;import static com.emercy.myapplication.MainActivity.CAMERA_PATH;public class PhotoActivity extends Activity {Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ImageView img new ImageView(this);String path getIntent().getStringExtra(CAMERA_PATH);if (path ! null) {img.setImageURI(Uri.fromFile(new File(path)));}setContentView(img);} }通过 Intent 接收图片路径然后展示在 ImageView 上需要注意的是PhotoActivity 中是直接将 ImageView 作为参数直接设置给了 SetContentView()这样相当于布局文件中只有一个 ImageView 的写法。 最后别忘了在 Manifest 当中添加权限 uses-permission android:nameandroid.permission.CAMERA/uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/编译运行效果如下 点击拍照进入 PhotoActivity展示的就是我们拍照的画面。 4. 小结 本节学习了一个手机上必不可少的设备通过相机我们可以拍摄照片或者视频Android 系统提供了两大打开方式Intent 调用系统相机 Activitiy或者用 Camera API 自行实现拍照功能。第一种非常简单将所有的相机操作都托管给系统我们只关心最终用户拍摄的结果而第二种就需要我们自己初始化 Camera 对象从而实现拍摄在实际开发中如果你的功能是和拍摄强相关需要一些定制化的拍摄体验那么一定要使用第二种方式来自己实现 Camera但是如果你只是一个简单的拍照获取图片那么第一种会让你事半功倍。
http://www.pierceye.com/news/387469/

相关文章:

  • 自助建站网站seo公司静态网站作品
  • 内部网站建设、北京的网页建设公司
  • 网站建设的后台登录oa信息管理系统
  • 镇江企业网站建设公司wordpress模板如何修改
  • 汕头中文建站模板建设全网营销型网站
  • 外贸网站建设盲区雄安移动网络电视
  • 建站方法友情链接发布平台
  • 做美剧盗版网站国内购物网站案例分析
  • 淄博网站制作哪家公司好东莞网站设计公司哪家好
  • 用dreammwea怎么做视频网站域名注册网站建设
  • 网站关键词用热门的还是冷门注销网站备案时间
  • 苏晋建设集团网站书店网站建设目标调研的方案
  • 下沙建设局网站建设公司内网网站的意义
  • 全屏响应式网站模板污网站公司网站
  • 抚远佳木斯网站建设领动建站
  • 班级网站 建设模板做任务佣金网站源码
  • 网站的关键词库广州建网站培训
  • 好的网页设计网站网站排名提升工具
  • 个人网站需要那些企查查入口网页版
  • 怎么用自己主机做网站、淮南网站推广
  • 丰台网站制作网站域名.xin
  • 省建设厅网站6工作室网页模板
  • 怎么制作免费网站教程视频wordpress 准迁
  • html5新增标签seo网址超级外链工具
  • 自己做的网站访问不了建站如何挣钱
  • 网盘做网站做网站推广员工
  • 河北正规网站建设比较网页制作平台哪家好
  • 2017网站seo如何做wordpress设置登录背景
  • 网站的模块怎么做网站建设的技术支持包括
  • 青岛网站设计哪家好游戏小程序开发定制