Android[Media][1] Camera
来源:互联网 发布:中小企业优化解决方案 编辑:程序博客网 时间:2024/06/07 14:56
干了一段时间的android开发,发现还是把基础搞好了,做实际项目才会游刃有余。故收拾一下努力学习的心情,重新学习一下android的基础知识。那么先从media开始吧!
话不多说,今天就先搞一个简单的Camera实例来热热身吧!
需要会的知识点:
BitmapFactory : 提供了很多静态的方法,用来加载Bitmap image。 下面是属性和方法的举例:
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();bmpFactoryOptions.inSampleSize = 4;//inSampleSize是设置图片显示为源图片的 1/4Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);imv.setImageBitmap(bmp);
载入的是图片在屏幕的现实大小,而不是图片本身,可以通过Display来获取屏幕的height和width
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();bmpFactoryOptions.inJustDecodeBounds = true;Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);
下面先来一张效果图:
下面是源码及注释:
import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.Display;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class CameraActivity extends Activity {final static int CAMERA_RESULT = 0;ImageView imv;String imageFilePath; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myPhoto.jpg";//图片的存储位置 Log.i("log", imageFilePath); File imageFile = new File(imageFilePath); Uri imageFileUri = Uri.fromFile(imageFile); Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);//intetn的actionintent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);//获取源图片的mapstartActivityForResult(intent, CAMERA_RESULT); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode == RESULT_OK) { imv = (ImageView) findViewById(R.id.image); Display currentDisplay = getWindowManager().getDefaultDisplay();//获取屏幕属性 高和宽 int dw = currentDisplay.getWidth(); int dh = currentDisplay.getHeight(); BitmapFactory.Options bmpFacOptions = new BitmapFactory.Options(); bmpFacOptions.inJustDecodeBounds = true; //开始解析图片,但载入的不是图片本身 Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFacOptions); int heightRatio = (int) Math.ceil(bmpFacOptions.outHeight/(float)dh);//获取压缩比率 int widthRatio = (int) Math.ceil(bmpFacOptions.outWidth/(float)dw); // 如果这个ratio都比 1 大, 显示最大的作为inSampleSize属性的值 if (heightRatio > 1 && widthRatio > 1) { if (heightRatio > widthRatio) { bmpFacOptions.inSampleSize = heightRatio; //显示为原图片的 1/heightRatio } else { bmpFacOptions.inSampleSize = widthRatio; //显示为原图片的 1/widthRatio } } // 开始真正的decode bmpFacOptions.inJustDecodeBounds = false; bmp = BitmapFactory.decodeFile(imageFilePath, bmpFacOptions); // 显示imv.setImageBitmap(bmp); } }}
- Android[Media][1] Camera
- Android-Media and Camera
- Android API Guides---Media and Camera
- Android 系列 5.6使用android.media.Camera拍照
- android中转换content://media/external/images/media/539163为/storage/emulated/0/DCIM/Camera/IMG_20160807_
- media and camera 框架之一: media playback
- Media and Camera 中 Camera 模块
- Multimedia and Camera - Media Playback
- android camera(1)
- Android Camera 分析 1
- Android API Guide for Media and Camera(五)—— 媒体与相机(Camera API)
- Android Media Framework(1): 总纲
- Android开发指南(34) —— Multimedia and Camera - Media Playback
- Android API Guide for Media and Camera(一)—— 媒体与相机(媒体播放器)
- Android API Guide for Media and Camera(三)—— 媒体与相机(ExoPlayer)
- android media
- media and camera 框架之三: Supported Media Formats
- com.android.camera.Camera
- 分布式存储系统FastDFS手册之三机制原理及其与MogileFS比较
- 喜欢的词、句【未完待续】
- 几种JSP页面传值方式
- 定义常量类对象(需要注意的问题)
- java收发html邮件
- Android[Media][1] Camera
- Java内部类
- hadoop 安装ssh时用到的一些命令,查到的详细解释做个笔记
- JavaMail(JAVA邮件服务) API详解
- UBOOT-2010-03在S3C2440上的移植<四>------------支持NANDFLASH
- JSP中复选框向后台传值
- 计算机专业推荐书籍
- java多线程机制
- ubuntu flash 插件下载地址