拍照并且剪切
来源:互联网 发布:淘宝网找胶片老相机 编辑:程序博客网 时间:2024/05/22 02:15
package com.example.nineteen;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.provider.MediaStore;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.Toast;/** * @author HD * @date 2015-12-7 * @package_name com.example.nineteen * @file_name MainActivity.java */public class MainActivity extends Activity implements OnClickListener { private Button btnTakePhone; private Button btnReceiveAlbum; private ImageView ivImage; private Uri pictureUri; public static final int TAKE_PHONE = 0; public static final int CROP_PHONE = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnTakePhone = (Button) findViewById(R.id.btnTakePhone); ivImage = (ImageView) findViewById(R.id.ivImage); btnReceiveAlbum = (Button) findViewById(R.id.btnReceiveAlbum); btnTakePhone.setOnClickListener(this); btnReceiveAlbum.setOnClickListener(this); } @Override public void onClick(View v) { // TODO 自动生成的方法存根 File file = new File(Environment.getExternalStorageDirectory(), "myFirstPicture.jpg"); try { if(file.exists()){ file.delete(); } file.createNewFile(); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } pictureUri = Uri.fromFile(file); switch (v.getId()) { case R.id.btnTakePhone: Intent intent = new Intent(); // 包名+action.描述 intent.setAction("android.media.action.IMAGE_CAPTURE"); // 指定的拍照之后文件的输出路径 intent.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri); startActivityForResult(intent, TAKE_PHONE); break; default: break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO 自动生成的方法存根 switch (requestCode) { case TAKE_PHONE: if (resultCode == RESULT_OK) { Toast.makeText(MainActivity.this, "拍照成功", Toast.LENGTH_SHORT) .show(); Intent intent = new Intent(); intent.setAction("com.android.camera.action.CROP"); // 设置对应文件的MIME类型,用来打开文件时的标识 intent.setDataAndType(pictureUri, "image/*"); // 告知需要对文件进行剪切 intent.putExtra("scale", true); startActivityForResult(intent, CROP_PHONE); } break; case CROP_PHONE: Log.i("hhhd", "crop phone"); if (resultCode == Activity.RESULT_OK) { try {// 通过内容提供者打开一个文件输入流,然后进行解码成Bitmap对象 Bitmap bitmap = BitmapFactory .decodeStream(getContentResolver().openInputStream( pictureUri)); ivImage.setImageBitmap(bitmap); } catch (Exception e) { // TODO: handle exception } } break; default: break; } }}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.nineteen" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.nineteen.MainActivity" > <Button android:id="@+id/btnTakePhone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="拍照"/> <ImageView android:id="@+id/ivImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true"/> <Button android:id="@+id/btnReceiveAlbum" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/btnTakePhone" android:layout_alignBottom="@+id/btnTakePhone" android:layout_marginLeft="22dp" android:layout_toRightOf="@+id/btnTakePhone" android:text="获取相册相片" /></RelativeLayout>
0 0
- 拍照并且剪切
- Android 拍照(获取原图),选择照片并且剪切图片
- android 拍照剪切图片
- android 拍照 图片剪切
- Android 拍照上传和拍照本地显示,拍照剪切上传,选取本地图片剪切上传
- anroid 拍照调用相册 剪切编辑图片
- Android 拍照获取图片并剪切
- android 拍照和选择相册图片剪切
- 拍照,选择照片并且剪裁
- android 选择图片拍照并剪切照片上传到服务器
- 从相册或拍照选择图片并剪切
- 选择图片或拍照剪切后上传服务器
- Android 对拍照、选照和剪切的封装
- android自定义相机添加蒙板,拍照剪切
- Android 实现拍照,选择图片并剪切保存
- 读取手机相册,从手机相册读取图片剪切,拍照获取图片,获取拍照图片进行剪切
- 浏览器调取摄像头拍照并且关闭摄像头
- 剪切
- MySQL导入.sql文件及常用命令
- JavaScript let (EcmaScript 6 let), JavaScript 局部变量
- 成为Java GC专家(4)—Apache的MaxClients参数详解及其在Tomcat执行FullGC时的影响
- Java DecimalFormat
- POJ2240 Arbitrage(AC)
- 拍照并且剪切
- 超经典:小明趣解什么叫网关?
- Linux crontab 环境变量问题
- UID_PS_01_快捷操作入门
- DIV+CSS---HTML+CSS
- android实现多线程下载
- 杨鹏谈世纪佳缘推荐算法:基于Spark GraphX,弃GBDT和LR用FM
- 单工、半双工和全双工概念
- 美团Android资源混淆保护实践