Форум программистов, компьютерный форум CyberForum.ru

C# Xamarin Android Как конвертировать изображения Uri в Bitmap - Xamarin

Войти
Регистрация
Восстановить пароль
 
Дима1237
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 4
17.07.2015, 14:42     C# Xamarin Android Как конвертировать изображения Uri в Bitmap #1
Я вот на пространствах интернета отыскал вот такой способ:
Код
 Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
При этом у меня вылетает ошибка, мол MainActivity не содержит определения для getContentResolver, ну и не был найден метод решения... Решения этой ошибки найти не могу.

Кто может подсказать, как конвертировать изображения Uri в Bitmap?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2015, 14:42     C# Xamarin Android Как конвертировать изображения Uri в Bitmap
Посмотрите здесь:

Xamarin Xamarin Android WebClient.DownloadString не отображает киррилицу
Xamarin Публикация приложения Xamarin.Forms для Android
Xamarin Xamarin: разработка под android
Xamarin Диплом на xamarin android
Xamarin - как открыть конструктор Xamarin
Xamarin Ошибки свежеустановленого xamarin android
C# Xamarin Android захват изображения Xamarin
Xamarin Xamarin developer Android. Отправка Method Post
Xamarin.Android AngleSharp "System.NullReferenceException" Как корректно выполнить место в коде? Xamarin
Xamarin Ошибка при десериализации Json с Web.Api в Xamarin.Android
Xamarin Какие есть возможные варианты подключения к FireBird из Xamarin.Android?
Xamarin Как создать приложения Android Xamarin

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Дима1237
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 4
18.07.2015, 17:57  [ТС]     C# Xamarin Android Как конвертировать изображения Uri в Bitmap #2
Попробовал как-то так:
C#
1
2
  Bitmap bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, Android.Net.Uri.FromFile(_file));
                _imageView.SetImageBitmap(bitmap);
Вот только с этим решениям, непонятно по какой причине, после 2-й фотки программа сама закрывается. При этом никакой ошибки не вылетает... Не могу понять в чём проблема...
Код программы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System.Data;
using System.IO;
using SQLite;
 
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using SqLiteConnection.DataBaseCreate;
 
using Android.Content.PM;
using Android.Net;
using Android.Graphics;
using Android.Provider;
using Java.Net;
using Android.Media;
using Java.IO; 
 
namespace Test1
{
 
 
    [Activity(Label = "Main_Layout_Activity", Theme = "@android:style/Theme.NoTitleBar")]
            
    public class Main_Layout_Activity : Activity
    {
        
       
 
        Java.IO.File _file;
        Java.IO.File _dir;
        ImageView _imageView;
 
        
        private Button bExit;
        private TextView getTxtViewUser;
        public string myName = MainActivity.MainRef.UserNameGET();
        protected override void OnCreate(Bundle bundle)
        {
 
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main_layout);
 
            getTxtViewUser = FindViewById<TextView>(Resource.Id.textViewUser);
 
            
           // DBRepository dbr = new DBRepository();
           // string userId = dbr.FindUserNameAndId(myName);
            getTxtViewUser.Text = myName;
 
            //Create tabel Image
            //string dbPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "ormdemo.db3");
            //var db = new SQLiteConnection(dbPath);
            //db.CreateTable<ImagesTabele>();
 
 
            bExit = FindViewById<Button>(Resource.Id.buttonExit);
            bExit.Click += bExit_Click;
 
             _imageView = FindViewById<ImageView>(Resource.Id.imageView1);
         //    _imageView.SetImageResource(Resource.Drawable.testImage);
 
            if (IsThereAnAppToTakePictures())
            {
                CreateDirectoryForPictures();
 
                Button button = FindViewById<Button>(Resource.Id.buttonCamera);
               
 
                button.Click += TakeAPicture;
 
           
            }
        }
 
        private bool IsThereAnAppToTakePictures()
        {
            Intent intent = new Intent(MediaStore.ActionImageCapture);
            IList<ResolveInfo> availableActivities = PackageManager.QueryIntentActivities(intent, PackageInfoFlags.MatchDefaultOnly);
            return availableActivities != null && availableActivities.Count > 0;
        }
 
        private void CreateDirectoryForPictures()
        {
            _dir = new Java.IO.File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), "AndroidCameraVSDemo");
            if (!_dir.Exists())
            {
                _dir.Mkdirs();
            }
        }
 
        private void TakeAPicture(object sender, EventArgs eventArgs)
        {
            Intent intent = new Intent(MediaStore.ActionImageCapture);
 
            _file = new Java.IO.File(_dir, String.Format("myPhoto_{0}.jpg", Guid.NewGuid()));
       
            intent.PutExtra(MediaStore.ExtraOutput, Android.Net.Uri.FromFile(_file));
 
            StartActivityForResult(intent, 0);
        }
       Context  c;
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
 
            if (resultCode == Result.Canceled) return;
 
            // make it available in the gallery
            Intent mediaScanIntent = new Intent(Intent.ActionMediaScannerScanFile);
           
                Android.Net.Uri contentUri = Android.Net.Uri.FromFile(_file);
 
                
                Bitmap bitmap = MediaStore.Images.Media.GetBitmap(ContentResolver, Android.Net.Uri.FromFile(_file));
                _imageView.SetImageBitmap(bitmap);
                
            
 
 
        }
 
 
 
        void bExit_Click(object sender, EventArgs e)
        {
            Intent intent = new Intent(this, typeof(MainActivity));
            this.StartActivity(intent);
        }
 
 
    }
}
А вот если вместо Bitmap использовать Uri:
C#
1
_imageView.SetImageURI(contentUri);
программа не закрывается и работает нормально...
Yandex
Объявления
18.07.2015, 17:57     C# Xamarin Android Как конвертировать изображения Uri в Bitmap
Ответ Создать тему
Опции темы

Текущее время: 08:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru