Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dima40420
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 20
#1

Получить полный путь к картинке в ImageView - Программирование Android

12.04.2017, 19:00. Просмотров 395. Ответов 9

Доброго времени суток! Помогите советом.

Имеется ImageView c картинкой как получить полный путь к этой картинке. Изображение можно выбирать из галлереи а можно получать с камеры. В обоих случаях работал с ури. Подскажите новичку заранее благодарен!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2017, 19:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить полный путь к картинке в ImageView (Программирование Android):

Получить картинку ImageView - Программирование Android
Здравствуйте. Подскажите пожалуйста как можно получить ссылку/путь на ресурс картинки которая стоит в ImageView? Перечитал много форумов,...

Скопировать картинку из одной ImageView в другую ImageView - Программирование Android
В ImageView поставлена картинка методом setImageResource. По нажатию на неё, нужно такую-же картинку поставить в другую вью, а в первой...

Получить доступ к ImageView в одном конкретном элементе ListView - Программирование Android
Есть layout элемента ListView <?xml version="1.0" encoding="utf-8"?> <LinearLayout...

Получить полный список контактов - Программирование Android
Привет форумчане, Кто-нибудь может подсказать, как получить все контакты из адресной книги? Цель приложения, синхронизировать...

Получить доступ к картинке, при помощи переменной с именем файла - Программирование Android
как можно получить доступ к картинке, при помощи переменной с именем файла

Получить путь к карте памяти (SD card) - Программирование Android
Не педелитесь методом, который возвращает путь к карте памяти, если она есть? Нащел вот такой метод в интернете, но на некоторых...

9
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
12.04.2017, 19:11 #2
Бессмысленный набор символов, какой путь может быть у imageView? Какой путь может быть у фото с камеры? Давай код хотя бы.
0
dima40420
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 20
12.04.2017, 19:39  [ТС] #3
Метод onActivityResult
Кликните здесь для просмотра всего текста
Java
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
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d(TAG, "onActivityResult==OK");
        if(resultCode==RESULT_OK){
            switch (requestCode){
                case CAMERA_CAPTURE:
                    for (ImageView imageView : mImageViews) { // тут я получаю изображение с камеры
                        if(imageView.getDrawable() == null){
                            imageView.setImageURI(mUri);
                            break;
                        }
                    }
                    break;
                case REQUEST_IMAGE_PICK: // тут назначаю изображение из галлереи по нажатию определеной imageview(их 6)
                    try {
                        Uri imageUri = data.getData();
                        switch (IdChk){
                            case 1:
                                mImageViews.get(0).setImageURI(imageUri);
                                break;
                            case 2:
                                mImageViews.get(1).setImageURI(imageUri);
                                break;
                            case 3:
                                mImageViews.get(2).setImageURI(imageUri);
                                break;
                            case 4:
                                mImageViews.get(3).setImageURI(imageUri);
                                break;
                            case 5:
                                mImageViews.get(4).setImageURI(imageUri);
                                break;
                            case 6:
                                mImageViews.get(5).setImageURI(imageUri);
                                break;
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
            }
        }
    }
]


Метод onClick
Кликните здесь для просмотра всего текста
Java
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
public void onClick(View v) {
    switch (v.getId()) 
        case button_cam: // камера
                mUri = generateFileUri();
            Log.d(TAG, "generateFileUri()==OK");
            if (mUri == null) {
               Toast.makeText(this, "SD card not available", Toast.LENGTH_LONG).show();
                return;}
            Log.d(TAG, "generateFileUri()CHECKED==OK");
                try {
                    // Намерение для запуска камеры;
                    Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mUri);
                    startActivityForResult(captureIntent, CAMERA_CAPTURE);
                } catch (ActivityNotFoundException e) {
                    // Выводим сообщение об ошибке
                    String errorMessage = "Ваше устройство не поддерживает съемку";
                    Toast toast1 = Toast
                            .makeText(this, errorMessage, Toast.LENGTH_SHORT);
                    toast1.show();
                } catch (Exception e){
                    Toast toast2 = Toast.makeText(this,"Ошибка доступа",Toast.LENGTH_SHORT);
                    toast2.show();
                }
            Log.d(TAG, "Activity_CAMERA===START");
               break;
                case imageView2:
                    Intent imageIntent = new Intent(Intent.ACTION_PICK);
                    imageIntent.setType("image/*");
                    startActivityForResult(imageIntent, REQUEST_IMAGE_PICK);
                    IdChk = 1;
                    Log.d(TAG, "img1===ON");
                    break;
                case imageView3:
                    Intent imageIntent2 = new Intent(Intent.ACTION_PICK);
                    imageIntent2.setType("image/*");
                    startActivityForResult(imageIntent2, REQUEST_IMAGE_PICK);
                    IdChk = 2;
                    Log.d(TAG, "img2===ON");
                    break;
                case imageView4:
                    Intent imageIntent3 = new Intent(Intent.ACTION_PICK);
                    imageIntent3.setType("image/*");
                    startActivityForResult(imageIntent3, REQUEST_IMAGE_PICK);
                    IdChk = 3;
                    Log.d(TAG, "img3===ON");
                    break;
                case imageView5:
                    Intent imageIntent4 = new Intent(Intent.ACTION_PICK);
                    imageIntent4.setType("image/*");
                    startActivityForResult(imageIntent4, REQUEST_IMAGE_PICK);
                    IdChk = 4;
                    Log.d(TAG, "img4===ON");
                    break;
                case imageView6:
                    Intent imageIntent5 = new Intent(Intent.ACTION_PICK);
                    imageIntent5.setType("image/*");
                    startActivityForResult(imageIntent5, REQUEST_IMAGE_PICK);
                    IdChk = 5;
                    Log.d(TAG, "img5===ON");
                    break;
                case imageView7:
                    Intent imageIntent6 = new Intent(Intent.ACTION_PICK);
                    imageIntent6.setType("image/*");
                    startActivityForResult(imageIntent6, REQUEST_IMAGE_PICK);
                    IdChk = 6;
                    Log.d(TAG, "img6===ON");
                    break;
        }
    }


метод generateFileUri()
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private Uri generateFileUri() {
 
        if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
            return null;
 
        File path = new File (Environment.getExternalStorageDirectory(), "CookBook");
        if (! path.exists()){
            if (! path.mkdirs()){
                return null;
            }
        }
 
        String timeStamp = String.valueOf(System.currentTimeMillis());
        File newFile = new File(path.getPath() + File.separator + timeStamp + ".jpg");
        return Uri.fromFile(newFile);
    }




У меня есть ImageView в которое приходит изображение либо с камеры либо из галлереи. Позже мне нужно будет сохранить пути к этим картинкам в бд. но я не знаю как получить путь к ним
0
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
12.04.2017, 21:39 #4
Цитата Сообщение от dima40420 Посмотреть сообщение
сохранить пути
А это что?
Цитата Сообщение от dima40420 Посмотреть сообщение
Java
1
File newFile = new File(path.getPath() + File.separator + timeStamp + ".jpg");
0
dima40420
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 20
13.04.2017, 04:29  [ТС] #5
это относительно камеры, а если изображение было выбрано из галлереи? я думал можно как то просканировать imageview и если в нем есть картинка то получить ее путь
0
Alex_Fedor
32 / 32 / 5
Регистрация: 20.01.2015
Сообщений: 230
13.04.2017, 07:36 #6
Цитата Сообщение от dima40420 Посмотреть сообщение
а если изображение было выбрано из галлереи?
Обратиться к галерее для выбора картинки.
Java
1
2
3
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, GALLERY_REQUEST);
Получаем путь к выбранной картинке.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case GALLERY_REQUEST:
        if(resultCode == RESULT_OK){
            puthImage=data.getData().toString();
            Uri proba=Uri.parse(puthImage);
            try {//если картинки по этому пути нет, должно выскочить исключение
                imgEdit.setImageURI(proba);
            }
            catch (Exception e) {// обрабатываем исключение показываем ic_launcher
                imgEdit.setImageResource(com.fedorov.learnenglishword.R.drawable.ic_launcher);
            }
        }
        break;
    default:
        break;
    }
}
Только галерея собирает все картинки хранящиеся на телефоне.
0
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
13.04.2017, 09:25 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Полный путь из uri можно получить так:
Java
1
new File(uri.getPath());
Alex_Fedor, скопировать код, точно такой, как у ТС, и представить, как ответ, просто гениально.
1
dima40420
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 20
14.04.2017, 20:12  [ТС] #8
Спасибо, относительно галлереи вроде все наладил с вашей помощью)

Но вот что касаемо изображения с камеры тут вот какая хрень: пришлось переделать цикл фор который искал свободное ImageView и назначал картинку но он перестал назначать изображения ( теперь просто ничего не происходит, ImageView пустое)что я делаю не так

вот так было:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
for (ImageView imageView : mImageViews) { // тут я получаю изображение с камеры
                        if(imageView.getDrawable() == null){
                            imageView.setImageURI(mUri);
                            break;
                        }
                    }


вот как стало:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
for (int i=0; i>mImageViews.size();i++){
                        if(mImageViews.get(i).getDrawable()== null){
                            mImageViews.get(i).setImageURI(mUri);
                            File fail_cam = new File (mUri.getPath());
                            PhotoPath[i] = fail_cam.toString();
                            Log.d(TAG,"Переменная = "+PhotoPath[i]);
                            break;
                        }
                    }
0
ExFau$t
357 / 343 / 67
Регистрация: 08.05.2012
Сообщений: 1,740
14.04.2017, 20:21 #9
Java
1
for (int i=0; i<mImageViews.size();i++){
Добавлено через 1 минуту
Чем тебе предыдущий цикл не угодил?
0
dima40420
0 / 0 / 0
Регистрация: 09.03.2017
Сообщений: 20
15.04.2017, 04:44  [ТС] #10
Насколько же я не внимателен. Спасибо. Ну мне так удобно вставлять в массив значение
0
15.04.2017, 04:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2017, 04:44
Привет! Вот еще темы с ответами:

Не получается получить путь к карте памяти - Программирование Android
Всем привет. У меня вот такой вопрос: storage/sdcard0 это путь к памяти телефона storage/sdcard1 это собственно карта памяти. ...

Получить абсолютный путь к Assets файлам - Программирование Android
Здравствуйте. Проект под MonoAndroid, но в данном случае это не важно. Использую iTextSharp для создания .pdf файла. И чтобы кирилица...

Как получить путь к SD карте на ЛЮБОМ устройстве? - Программирование Android
Повторяю - на ЛЮБОМ устройстве.

Получить путь к текстовому файлу по его Uri - Программирование Android
Доброго времени суток. Необходимо прочитать и десериализовать файл XML. Запуская неявный Intent указываю нужный файл и в...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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