mono for android 获取手机照片或拍照并裁剪保存
axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/btn0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="从相册中选择照片"
/>
<Button
android:id="@+id/btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="拍照"
/>
<ImageView
android:id="@+id/imageID"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
C#
using System; using Android.App;
using Android.Content;
using Android.Widget;
using Android.OS;
using Android.Graphics;
using System.IO; namespace Phoot
{
[Activity(Label = "Phoot", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
public static int NONE = 0;
public static int PHOTOHRAPH = 1;//拍照
public static int PHOTOXZOOM = 2;//缩放
public static int PHOTORESOULT = 3;//结果 public static string IMAGE_UNSPECTFIED = "image/*"; ImageView imageview = null;
Button button0 = null;
Button button1 = null;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle); // Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main); button0 = FindViewById<Button>(Resource.Id.btn0);
button1 = FindViewById<Button>(Resource.Id.btn1);
imageview = FindViewById<ImageView>(Resource.Id.imageID);
button0.Click += new EventHandler(button0_Click);
button1.Click += new EventHandler(button1_Click); }
//选择照片
void button0_Click(object sender, EventArgs e)
{
Intent intent = new Intent(Intent.ActionPick, null);
//选择照片意图
intent.SetDataAndType(
Android.Provider.MediaStore.Images.Media.ExternalContentUri, IMAGE_UNSPECTFIED);
StartActivityForResult(intent, PHOTOXZOOM);
} //拍照
void button1_Click(object sender, EventArgs e)
{ Intent intent = new Intent(Android.Provider.MediaStore.ActionImageCapture);
string file = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(),Android.OS.Environment.DirectoryDcim.ToString()+ "/test.jpg"); var outputFileUri = Android.Net.Uri.Parse(file);
intent.PutExtra(Android.Provider.MediaStore.ExtraOutput,file);
StartActivityForResult(intent, PHOTOHRAPH); } protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if (requestCode == NONE)
{
return;
}
if (requestCode == PHOTOHRAPH)
{
//获取照片
Bitmap bitmap = (Bitmap)data.Extras.Get("data");
Java.IO.File picture = new Java.IO.File(Android.OS.Environment.ExternalStorageDirectory.ToString()+"/"+Android.OS.Environment.DirectoryDcim.ToString() + "/test.jpg"); //Java.IO.FileOutputStream b = new Java.IO.FileOutputStream(picture);
FileStream MyFileStream1 = new FileStream(picture.ToString(), FileMode.Create);
//保存照片
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, MyFileStream1); if (System.IO.File.Exists(picture.ToString()))
{
startPhotoZoom(Android.Net.Uri.FromFile(picture));
} //startPhotoZoom
}
if (data == null)
{
return;
}
if (requestCode == PHOTOXZOOM)
{
startPhotoZoom(data.Data);
}
//处理结果
if (requestCode == PHOTORESOULT)
{
Bundle extras = data.Extras;
if (extras != null)
{
Bitmap photo = (Bitmap)extras.GetParcelable("data"); //Stream stream = null;
//压缩文件
//photo.Compress(Bitmap.CompressFormat.Jpeg, 75, stream); imageview.SetImageBitmap(photo);
}
} base.OnActivityResult(requestCode, resultCode, data);
} //缩放
public void startPhotoZoom(Android.Net.Uri uri)
{ Intent intent = new Intent("com.android.camera.action.CROP");
intent.SetDataAndType(uri, IMAGE_UNSPECTFIED); intent.PutExtra("crop", true);
//// aspectX aspectY 是宽高的比例
intent.PutExtra("aspectX", 1);
intent.PutExtra("aspectY", 1);
//// outputX outputY 是裁剪图片宽?
intent.PutExtra("outputX", 100);
intent.PutExtra("outputY", 100);
intent.PutExtra("return-data", true);
StartActivityForResult(intent, PHOTORESOULT); } }
}
以前的我是没有做笔记的习惯的,学习了后觉得自己能记住,但是最近发现很多学的东西都忘记了,所有现在一有新的知识,就记下来吧。
最近又做一个mono for android 的项目 这次调整比较大,上次做的点餐系统很好用 ,但是做的时候没有做笔记很多东西都忘记了,这次我把项目涉及到的知识传到博客上,方便记忆,也很大家分享分享的,希望大家能给出点意见。——小査
mono for android 获取手机照片或拍照并裁剪保存的更多相关文章
- 如何兼容所有Android版本选择照片或拍照然后裁剪图片--基于FileProvider和动态权限的实现
我们知道, Android操作系统一直在进化. 虽然说系统是越来越安全, 可靠, 但是对于开发者而言, 开发难度是越来越大的, 需要注意的兼容性问题, 也越来越多. 就比如在Android平台上拍照或 ...
- Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息
Android 获取手机信息,设置权限,申请权限,查询联系人,获取手机定位信息 本文目录: 获取手机信息 设置权限 申请权限 查询联系人 获取手机定位信息 调用高德地图,设置显示2个坐标点的位置,以及 ...
- android API版本对应的系统版本及Android获取手机和系统版本等信息的代码
学了这么久的Android,竟然一直对其API对应的名称关系一值搞不清楚,现在网上认真看了下资料,转载一个觉得写得不错的作者的文章,记下来: [背景] 之前折腾android期间,慢慢地知道了,And ...
- Android 获取手机的厂商、型号、Android系统版本号等工具类(转载)
Android 获取手机的厂商.型号.Android系统版本号等工具类 1.获取手机制造厂商 2.获取手机型号 3.获取手机系统当前使用的语言 4.获取Android系统版本号 5.获取手机IMEI串 ...
- Android 获取手机Mac地址,手机名称
/** * 获取手机mac地址<br/> * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取 ...
- android获取手机信息大全
IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) getSystemServic ...
- Android获取手机制作商,系统版本等
在开发中 我们有时候会需要获取当前手机的系统版本来进行判断,或者需要获取一些当前手机的硬件信息. android.os.Build类中.包括了这样的一些信息.我们可以直接调用 而不需要添加任何的权限和 ...
- Android获取手机设备识别码(IMEI)和手机号码
最近看了下获取手机设备ID和手机信息以及SIM的信息例子,主要还是借鉴别人的,现在自己写一下,算是巩固加深了,也希望能给大家一个参考 必要的条件还是一部真机,SIM卡或者UIM卡. 首先,在Andro ...
- android获取手机信息2
IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) getSystemServic ...
随机推荐
- shell运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...
- 干货分享:SQLSERVER使用裸设备
干货分享:SQLSERVER使用裸设备 这篇文章也适合ORACLE DBA和MYSQL DBA 阅读 裸设备适用于Linux和Windows 在ORACLE和MYSQL里也是支持裸设备的!! 介绍 大 ...
- 网站定位之---根据IP获得区域
记得以前做一个培训机构网站时候需要定位,那时候用的搜狐的api,不是很精准. demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetC ...
- SQL Server常见数据类型介绍
数据表是由多个列组成,创建表时必须明确每个列的数据类型,以下列举SQL Server常见数据类型的使用规则,方便查阅. 1.整数类型 int 存储范围是-2,147,483,648到2,147,483 ...
- 基于AOP的MVC拦截异常让代码更优美
与asp.net 打交道很多年,如今天微软的优秀框架越来越多,其中微软在基于mvc的思想架构,也推出了自己的一套asp.net mvc 框架,如果你亲身体验过它,会情不自禁的说‘漂亮’.回过头来,‘漂 ...
- 修改session垃圾回收几率
<?php //修改session垃圾回收几率 ini_set('session.gc_probability','1'); ini_set('session.gc_divisor','2'); ...
- css3制作旋转动画
现在的css3真是强大,之前很多动画都是用jq来实现,但是css3制作的动画要比jq实现起来简单很多,今天呢,我自己也写了一个css旋转动画和大家分享.效果如下面的图片 思路:1.制作之前呢,我们先来 ...
- Mysql - 触发器/视图
触发器在之前的项目中, 应用的着实不多, 没有办法的时候, 才会去用这个. 因为这个东西在后期并不怎么好维护, 也容易造成紊乱. 我最近的项目中, 由于数据库设计(别人设计的)原因, 导致一些最简单功 ...
- 微信小程序之用户数据解密(七)
[未经作者本人同意,请勿以任何形式转载] 经常看到有点的小伙伴在群里问小程序用户数据解密流程,所以打算写一篇关于小程序用户敏感数据解密教程: 加密过程微信服务器完成,解密过程在小程序和自身服务器完成, ...
- linux系统下基于mono部署asp.net,使用ef6与mysql出现的问题【索引】
git clone github.com/mono的源码,日期:2014-06-19,百度网盘链接:http://pan.baidu.com/s/1kTG9EUb 关于asp.net利用mono部署到 ...