Хобрук: Ваш путь к мастерству в программировании

Как проверить, не изменилось ли изображение изображения

У меня такая проблема в ImageView, по умолчанию я поставил ivImage.setImageResource(R.drawable.avatar) И когда я нажимаю кнопку "Сохранить", если изображение в ImageView не изменилось, оно не должно сохранять изображение. Я пробовал это, но это не работает

private Drawable oldDrawable;

в onCreate()

oldDrawable = imgAvatarDoctor.getDrawable();

и по нажатию кнопки

 if (imgAvatarDoctor.getDrawable() == oldDrawable) {
            isNoError = false;
        }

Итак, как я могу это исправить? Спасибо

13.09.2016

Ответы:


1

вместо этого вы можете использовать растровое изображение,

private Bitmap oldDrawable;

oldDrawable = ((BitmapDrawable) ivImage.getDrawable()).getBitmap();

 if (oldDrawable == oldDrawable) {
        isNoError = false;
    }
13.09.2016

2

Используйте setTag и getTag для сравнения ваших рисунков следующим образом:

изначально установите тег вашего изображения на 0 в вашем onCreate

imgAvatarDoctor.setTag("0");

и всякий раз, когда вы меняете изображение, вы можете изменить тег на что-то отличное от 0, например:

imgAvatarDoctor.setTag("UpdatedTag");

Теперь на вашем прослушивателе кликов вы можете сделать это:

if (imgAvatarDoctor.getTag().equalsIgnoreCase("UpdatedTag")){
//your image view is updated
} else {
// your image view is not update
}

Удачного кодирования !!!!!

13.09.2016
  • Я делаю фото из Firebase Storage, поэтому мне нужно один раз проверить, не выбрал ли пользователь изображение при первом входе в систему. :'( Мне нужно решение для решения этой проблемы :) 13.09.2016
  • Следующая ссылка поможет вам сравнить чертежи вашего изображения с изображением, хранящимся в папке с возможностью рисования: stackoverflow.com/questions/6353170/ 13.09.2016

  • 3

    Вы можете использовать флаг, чтобы инициировать изменение изображения. В onCreate()

    imageChanged = false;
    

    И в функции, которая получает измененное изображение (т.е. onActivityResult), обновите этот флаг как

    imageChanged = true;
    

    затем при нажатии кнопки «Сохранить» вы можете легко проверить этот флаг:

    if(imageChanged)
       //save image
    else
       //pass
    
    13.09.2016

    4

    При установке изображения установите любой тег для изображения

    image.setTag(res); //here, res is drawableID
    

    При проверке идентификатора изображения вы можете использовать этот тег для сравнения:

    int oldImage = image.getTag();  //oldImage will be same as drawable ID
    

    Теперь вы можете сравнить oldImage с выводимым идентификатором этого изображения и проверить, обновлено оно или нет.

    13.09.2016
    Новые материалы

    Управление DOM для чайников вроде меня
    Одной из первых вещей, которую мы рассмотрели, когда начали изучать Javascript во Flatiron, была модель DOM. Кто он? Чем он занимается? Он больше машина, чем человек? Ну да довольно много. ДОМ..

    Что такое структура данных?
    Структура данных хранит и извлекает данные. Все, что обеспечивает эти две функции, является структурой данных . Период. Вы можете пропустить оставшуюся часть статьи, если ответ..

    мои январские чтения по программированию
    Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

    Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
    Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

    Искусственный интеллект в юридической отрасли - пример прогнозирования судебных решений с помощью глубокого обучения
    На протяжении всей истории люди полагались на суды, присяжных, королей и королев в отправлении правосудия. Сегодня способность судов обеспечивать справедливое и быстрое правосудие для своих..

    Введение в машинное обучение для обнаружения аномалий (часть 1)
    Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

    Начало работы с Pulumi в Digital Ocean
    Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..