android 实现照相功能 照片存放在SID卡中,将照片显示在Image中

protected static final int CAMERA_RESULT = 0;
	private String fileName;
	private Button takePhotoBn;
	private String imageFilePath;

	private ImageView imv;
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent intent)
	{
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, intent);
		// 如果拍照成功
		if (resultCode == RESULT_OK)
		{

			// Bundle extras = intent.getExtras();
			// Bitmap bmp = (Bitmap)extras.get("data");
			imv = (ImageView) findViewById(R.id.imageView1);
			// 取得屏幕的显示大小
			Display currentDisplay = getWindowManager().getDefaultDisplay();
			int dw = currentDisplay.getWidth();
			int dh = currentDisplay.getHeight();
			// 对拍出的照片进行缩放
			BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
			bmpFactoryOptions.inJustDecodeBounds = true;
			Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);
			int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight / (float) dh);
			int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth / (float) dw);
			if (heightRatio > 1 && widthRatio > 1)
			{

				if (heightRatio > widthRatio)
				{
					bmpFactoryOptions.inSampleSize = heightRatio;
				} else
				{
					bmpFactoryOptions.inSampleSize = widthRatio;
				}

			}
			bmpFactoryOptions.inJustDecodeBounds = false;
			bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);
			try
			{
				MediaStore.Images.Media.insertImage(getContentResolver(),
						imageFilePath, fileName, null);
			} catch (FileNotFoundException e)
			{
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			imv.setImageBitmap(bmp);
		}
	}

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ImageView mImageView = (ImageView) findViewById(R.id.image);
		takePhotoBn = (Button) findViewById(R.id.button1);
		imv = (ImageView) findViewById(R.id.imageView1);
		// 点击Photo Button按钮照相
		takePhotoBn.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
			    fileName = System.currentTimeMillis() + ".jpg";
				File appDir = new File(Environment.getExternalStorageDirectory(), "ImageFile");
				if (!appDir.exists()) {
			        appDir.mkdir();
			    }
				imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ImageFile/"+fileName;
			    System.out.println("====imageFilePath===="+imageFilePath);
			    File imageFile = new File(imageFilePath);
				Uri imageFileUri = Uri.fromFile(imageFile);
				Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
				i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
				startActivityForResult(i, CAMERA_RESULT);

			}
		});

	}
时间: 2024-10-10 02:49:44

android 实现照相功能 照片存放在SID卡中,将照片显示在Image中的相关文章

Android大字体下,通话界面SIM卡运营商名称显示不全

大字体下,通话界面SIM卡运营商名称显示不全 插入有效SIM卡,设置字体为Large 1.测试机A与辅测机B正在通话中,辅测机C呼叫A,A接听 2.观察通话界面 [实际结果] 通话界面SIM卡运营商名称显示不全(见附件截图) 在InCall界面,那肯定是在InCallUI模块,这个界面是InCallActivity.java界面, MTK6735/packages/apps/InCallUI/res/layout/call_info_view.xml 修改成: 即可,这样就能完全显示了

关于调用Android照相功能获取图片

最近在项目中调用相机,使用了别人写好的文件,但发现获取的照片没真正使用系统照相拍照再查看那么清晰,于是研究了一下,发现通常调用照相功能获取的图片都是被压缩的,如果要获取原照,那得保存后在获取.在网上找到一个博主写了两篇文章就此问题进行详细讲解,可看起文章学习: Android开发之获取相册照片和获取拍照照片 Android开发之获取相册照片和获取拍照照片二

Android 使用存放在存assets文件夹下的SQLite数据库

因为这次的项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中了,之后把该文件放到了assets文件夹下面.一开始打算每次都从assets文件夹下面把该文件夹拷贝到手机的SD卡或者手机自身的存储上之后再使用,后来考虑到每次都拷贝的话效率不高,并且如果涉及到对数据库的修改操作的话拷贝之后数据就被恢复了. 因此就写了该封装,该封装只是在第一次使用数据库文件的时候把该文件夹拷贝到手机的/data/data/应用程序报名/database文件夹下,之后就直接从这个地方使用了.并且它允许你

Android开发系列(七):把文件存放在SDCard中

一般我们的手机应用默认的存储空间是手机自带的内存中,但是对于比较大的文件比如视频.音频来说,我们可以把它存放在SDCard中: 接下来通过代码实现具体的把文件存放在SDCard中(仅实现了核心代码) 首先,因为要存放在SDCard中,我们需要提供SDCard权限: 在AndroidManifest.xml中添加权限: <!-- 在SDCard创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT

Android 照相功能

使用内置的Camera 应用程序捕获图像            探索Android 所提供的内置功能,内置的图像捕获与存储功能为Android 上所有媒体功能提供了一个很好的切入点,为我们在以后的章节中处理音频和视频奠定了基础.            现在介绍如何利用内置的Camera(摄像头)应用程序.    package com.example; import java.io.File; import android.app.Activity; import android.content

Camera实现照相功能的关键步骤

Camera类用于设置图像采集相关设置,开始/停止预览,拍照,检索编码视频帧.该类是 Camera 服务的客户端,管理真实的 camera 硬件. 要访问camera设备,必须在 Android Manifest中声明 CAMERA 权限.还要保证包含 <uses-feature> manifest 元素声明你的应用程序使用的相机功能.例如,如果是使用 camera 和 auto-focus(自动对焦)功能,你的 Manifest 中应该包含以下: <uses-permission an

集成Android免费语音合成功能(在线、离线、离在线融合)

集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离线)集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) 转眼间,大半年没写文章了,没什么理由,就是人变懒了.囧~ 看标题,其实大家都被骗了,有这一篇文章还不够,我其实是打算分3篇文章来写的,如果合在一章里面就太长了,不过现在这个标题党横行的网络世界,我也被污染了,哈.那么为什么要分3篇文章来讲呢?看标题也能猜到了,就是在线.离线.离在线融合这3种语音合成方式,我将分别使

Android图片裁剪功能——调用系统裁剪

花了两天时间看了下android的图片裁剪功能的实现.其实刚开始做这个我挺虚的,以为整个功能都需要自己写出来,但查了些资料,发现android已经提供了裁剪功能,需要的话自己调用就成了.soga,这下轻松多了. 首先推荐几篇博客 Android大图片裁剪终极解决方案 要想弄明白裁剪功能,这系列博客非常重要,你可以不看我下面总结的,但你一定要看他这系列的几篇文章. Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪) 这篇也不错,比较喜欢他的注释.虽然也有些误导,比如说他有一段对setD

如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能

Cocos2d-x作为一款优秀的跨平台游戏引擎,已经被越来越多的开发者使用,而在游戏中使用分享组件能够有效的提供用户粘性,通过分享回流来提高APP安装量,但是目前市面上能够在Cocos2d-x环境下使用的分享插件并不多,开发者们只能自己对原生分享SDK进行封装来实现,前一段时间友盟推出Cocos2d-x分享组件,能够帮助开发者快速集成.友盟也把组件的源码放在GitHub上,有好的想法也可以直接在GitHub上修改(PS.在GitHub上提bug可以获得友盟的小奖品),同样也可以对源码进行学习,对