在 Xamarin.Forms 中使用 Acr.XamForms Nuget 访问相机和图库的示例代码 [关闭]

Posted

技术标签:

【中文标题】在 Xamarin.Forms 中使用 Acr.XamForms Nuget 访问相机和图库的示例代码 [关闭]【英文标题】:Example code for Camera and Gallery access using Acr.XamForms Nuget in Xamarin.Forms [closed] 【发布时间】:2014-09-22 12:33:22 【问题描述】:

谁能提供在 Xamarin.Forms 中使用 Acr.XamForms Nuget 访问相机和图库的链接/示例代码?

我有来自 here 的代码,但我想在我的 PCL 中执行功能使用 Acr.XamForms nuget 包 [而不是将其包含在设备特定项目中]

提前致谢!

【问题讨论】:

【参考方案1】:

也许这可以帮助你!如果没有 - 说我,我会创建一个简单的项目!

https://github.com/aritchie/acr-xamarin-forms/tree/master/Acr.XamForms.Mobile/Media http://forums.xamarin.com/discussion/18061/xamarin-mobile-on-pcl-xamforms-camera-geolocation-etc

【讨论】:

我确实有这个项目,但是它在一个项目中包含了很多东西,并且包含了很多类,因此正在寻找相同的代码的简单解决方案。【参考方案2】:

我花了一些时间研究 ACR 示例,但仍然没有完全弄清楚它们是如何组合在一起的。所以我最终从头开始,对 App.cs 文件中的所有内容进行编码,并通过反复试验想出了这个适用于 iosandroid 的非常简单的解决方案。它允许您从图库中获取图像或拍照,完成后会显示照片。希望这可以帮助某人节省几个小时。

我还想向所有努力为社区创建优秀库的人发出请求:请提供超级简单的使用示例。不要创建一个详尽的示例来演示您的库的所有内容...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using Xamarin.Forms;
using Acr.XamForms.Mobile.Media;

namespace photoSimpleTest

    public class App : Application
    
        MediaPicker mPick = new MediaPicker();

        Image ShowPic;

        public App ()
        
            var showGalleryButton = new Button 
                Text="Show Gallery"
            ;
            showGalleryButton.Clicked += ShowGallery;

            var takePictureButton = new Button
            
                Text = "Take Picture"
            ;
            takePictureButton.Clicked += TakePicture;

            ShowPic = new Image();

            MainPage = new ContentPage
            
                Content = new StackLayout
                
                    VerticalOptions = LayoutOptions.Center,
                    Children = 
                        showGalleryButton,
                        takePictureButton,
                        ShowPic
                    
                
            ;
        

        public async void ShowGallery(object s, EventArgs a) 
        
            if (!mPick.IsPhotoGalleryAvailable)
                Debug.WriteLine("Photo Gallery is unavailable");
            else
            
                var result = await mPick.PickPhoto();
                PhotoReceived(result);
            
        

        public async void TakePicture(object s, EventArgs a)
        
            if (!mPick.IsCameraAvailable)
                Debug.WriteLine("Camera is not available");
            else
            
                var opt = new CameraOptions  ;
                var result = await mPick.TakePhoto(opt);
                PhotoReceived(result);
            
        

        private void PhotoReceived(IMediaFile file)
        
            if (file == null)
                Debug.WriteLine("Photo Cancelled");
            else
                ShowPic.Source = ImageSource.FromFile(file.Path);
        
    

【讨论】:

以上是关于在 Xamarin.Forms 中使用 Acr.XamForms Nuget 访问相机和图库的示例代码 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上的 Xamarin.Forms.Maps 中使用 Xamarin.Essentials Geolocation 获取设备位置的奇怪问题

使用Xamarin Forms播放视频

Xamarin.Forms:Forms.Context 已过时

如何使用 ScnViewGestures.Forms 在 Xamarin.Forms 中使用 TouchDown 和 TouchUp 事件创建视图

在 Xamarin.Forms 中使用 ToptabbedPage 时出现意外的白色按钮

Xamarin.Forms中DependencyService的使用