在开发Android应用的时候,可能会遇到类似微信朋友圈中拍照或相册选取图片的场景,拍照或选取图片之后在显示的时候却发现图片的角度不对,明明是竖版拍照,显示出来缺失躺着的。

这是因为在某些特定手机上例如三星系列手机上,预装的相册程序在查看图片的时候会根据拍照的时候手机旋转角度来进行自动旋转。

接下来说明一下具体怎么获取图片的拍摄角度以及如何进行旋转。

         /// <summary>
/// 获取指定路径图片拍摄角度
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
protected Int32 GetImageRotate(String path)
{
var angle = ;
ExifInterface exif = null;
try
{
exif = new ExifInterface(path);
}
catch (Exception ex)
{
} if (exif != null)
{
angle = exif.GetAttributeInt(ExifInterface.TagOrientation, -);
if (angle != -)
{
switch (angle)
{
case (int)Android.Media.Orientation.Rotate90:
angle = ;
break;
case (int)Android.Media.Orientation.Rotate180:
angle = ;
break;
case (int)Android.Media.Orientation.Rotate270:
angle = ;
break;
}
}
else angle = ;
}
return angle;
}

获取角度之后,就简单了,接下来对图片进行旋转处理。

                    angle = GetImageRotate(path);

                    if (angle != )
{
var m = new Matrix();
var width = bitmap.Width;
var height = bitmap.Height;
m.SetRotate(angle);
bitmap = Bitmap.CreateBitmap(bitmap, , , width, height, m, true);
}

接下来如何处理就看自己的需要了。

Xamarin开发Android笔记:拍照或相册选取图片角度问题的更多相关文章

  1. Xamarin开发Android笔记:背景操作

    使用Xamarin开发Android UI的时可能会遇到一些场景背景的问题,虽然可以利用多层或直接使用图片背景来完成,但这样会增加不少的资源消耗,最终导致内存溢出的情况.最好的方法还是利用内部方法或代 ...

  2. Xamarin开发Android笔记:使用ZXing进行连续扫描

    在项目开发中需要使用到条码扫描,因为以前就测试过ZXing,感觉识别速度和功能都不错,所以直接引用.不过在实际开发的过程中,却遇到连续扫描的问题,每次扫描识别完成之后,扫描窗体自动关闭了. 在Xama ...

  3. Xamarin开发Android笔记:TextView行间距设定

    TextView 在使用TextView的时候会遇到调整行间距的问题,可通过Layout文件添加属性完成,具体属性如下: //设置行间距,如”3dp”. android:lineSpacingExtr ...

  4. Xamarin开发Android笔记:图片切换ImageSwitcher

    在移动应用开发过程中经常会使用到图片展示场景,例如利用多张图片说明一个产品的特点,此处就会使用到ImageSwithcher,当然也可以使用ViewFliper来实现,但使用ViewFliper的时候 ...

  5. Android拍照与相册选取图片

    做过几次拍照,相册选取图片,但都记不住,这次发表个简单的保存下 private static final int PHOTO_GRAPH = 1;// 拍照 private static final ...

  6. 【Xamarin开发 Android 系列 7】 Android 结构基础(下)

    原文:[Xamarin开发 Android 系列 7] Android 结构基础(下) *******前期我们不打算进行太深入的东西,省的吓跑刚进门的,感觉门槛高,so,我们一开始就是跑马灯一样,向前 ...

  7. 【Xamarin开发 Android 系列 3】循序渐进的学习顺序

    原文:[Xamarin开发 Android 系列 3]循序渐进的学习顺序 指定合理的学习步骤,将各个技术点进行强化.慢慢 的就从点到线 到面的飞跃,一切仅仅是时间问题,开始前,请记住,学习是最佳的投资 ...

  8. xamarin开发android收集的一些工具

    xamarin开发android收集的一些工具 工欲善其事,必先利其器,从16年下半年开始做xamarin相关的开发,平时使用的一些工具和google插件给大家分享一下,都有下载地址,持续更新. Vi ...

  9. Xamarin开发Android应用打包apk

    Visual Studio中用Xamarin开发Android应用,生成apk文件有3种方法 1.debug时,代码目录下bin\Debug中会自动生成调试用***-Signed.apk文件,但是文件 ...

随机推荐

  1. EXTJS4自学手册——EXT基本方法、属性(mixins多继承、statics、require)

    1.mixins 说明:类似于面向对象中的多继承 <script type="text/javascript"> Ext.onReady(function () {// ...

  2. 编写serversocket简单示例1

    package j2se.core.net.tcp; import java.io.DataOutputStream;import java.io.IOException;import java.ne ...

  3. adv联系题

    http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html(新)

  4. AIX 查看当前目录内最大的10个目录

       du  | sort -r n| head -n10 du  查看目录大小: srot  排序,-r 选择倒序,-n选项 看作数值排序(否则将作为字符排序): herd   -n10  查看开通 ...

  5. Powerdesigner 设置唯一约束

  6. Oracle 11g 服务器安装图解

    平常Oracle都是安装到本地的,没有安装到服务器过,今天找了个帖子是安装到服务器的图解 http://jingyan.baidu.com/album/948f5924373c04d80ff5f9f5 ...

  7. 高尔夫管理系统SSH

    登录-----------http://localhost:8080/GOLF/Denglu 一.Action 1.处理今日消费数据逻辑的 package com.chinasofti.golf.ac ...

  8. OD使用教程8

    方式一基本的打补丁方式:   打开程序之后首先会跳出一个nag窗口,从中我们知道了可以将nag窗口作为切入点,只要找到了nag的触发点就等同于找到注册与未注册的判断的点 右键-查找-所有参考文本字串 ...

  9. luogu p2330[SCOI05] 繁忙的都市——瓶颈生成树

    P2330 05四川 繁忙的都市 题目描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道 ...

  10. 替换CENTOS自带的yum源为网易163镜像源

    首先确保你的系统是centos5或者centos6   先备份你系统自带的repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/Cent ...