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);         }     }}



更多相关文章

  1. Android(安卓)matrix 控制图片的旋转、缩放、移动
  2. android拍照与读取相册
  3. android解决坚屏拍照和保存图片旋转90度的问题,并兼容4.0
  4. [Android]在App中使用相机
  5. android WebView 图片缩放功能小结
  6. Android播放照相机声音
  7. android音频、视频、拍照基础操作
  8. Android(安卓)拍照及相册选图的那些坑
  9. android使用inSampleSize、inScaled、inDensity、inTargetDensit

随机推荐

  1. Android的读写文件及权限设置
  2. android 页面停几秒后跳转
  3. Android常用Adapter用例(二)
  4. Android Realm数据库使用总结及采坑记录
  5. Android与JS之间的互调
  6. Slides for RxJava,Android,FRP
  7. Android 检查网络状态是否可用 (工具类总
  8. CentOS 下载 Android 源代码。
  9. Android经典动画案例分析
  10. Android中Activity触摸事件传递源码学习