Comments 12
Не очень изящное, но простое как карандаш и реально работающее решение...
Не очень изящное, это мягко сказано.
Не очень изящное, это мягко сказано.
+1
… выделенную для вашей аппликации…
аппликацию дети из говна и пластелина в садике делают
аппликацию дети из говна и пластелина в садике делают
+1
Простите, я в России больше семи лет не был, начинаю забывать простые слова.
Конечно же я имел ввиду application = приложение.
Конечно же я имел ввиду application = приложение.
0
Тут вы не правы. Аппликацию из бумаги и клея обычно делают.
А из говна и пластилина скульптура получится. Или художественная лепка на худой конец.
А из говна и пластилина скульптура получится. Или художественная лепка на худой конец.
0
Это плохой тон — писать в корень карты. Если пользователь ставит много приложений, пишущих в корень, его карта быстро превращается в файлопомойку, где сложно чтото найти. Тем более файлы остаются после деинсталляции. Пишите лучше в кэш
+1
Согласен, что в корень класть все подряд — не есть хорошо. Но проблема в том, что кэш приложения обычно ОЧЕНЬ глубоко спрятан в дереве каталогов, и мало кто из непрофессиональных юзеров туда сможет добраться даже с подсказкой, ибо путь действительно — оооочень длинный.
Тут же (в данном конкретном приложении) часто необходимо сохранить всего 1-2 фотографии, и иметь к ним быстрый доступ, чтобы можно было скинуть на PC или еще что.
Поэтому и был выбран этот нехороший с точки зрения гайдлайнов, но (в данном конкретном случае) на мой взгляд — оптимальный вариант.
Есть идея в следующих версиях позволить юзеру указывать путь для сохранения в настройках.
Тут же (в данном конкретном приложении) часто необходимо сохранить всего 1-2 фотографии, и иметь к ним быстрый доступ, чтобы можно было скинуть на PC или еще что.
Поэтому и был выбран этот нехороший с точки зрения гайдлайнов, но (в данном конкретном случае) на мой взгляд — оптимальный вариант.
Есть идея в следующих версиях позволить юзеру указывать путь для сохранения в настройках.
0
Ну мне кажется сохранение не в корень карты, а хотя бы в папке с именем Вашего приложения, уже сильно улучшит ситуацию, но сохранит возможность быстро обратиться к картинке.
0
>просто сохраняю файлы в корне SD-карты
Расстрелять! То-то у нас после таких приложений все SD-карточки засорены!
>мало кто из непрофессиональных юзеров
Зачем им куда то добираться? У них есть Галерея, которая автоматически всё просканирует.
>ибо путь действительно — оооочень длинный.
По гайдлайнам — /sdcard/Android/com.my.app/ — разве это длинный путь? Если уж не хотите сохранять в ExternalCacheDir так хоть сюда суйте! А теперь вы пропагандируете на Хабре засорение sd-карты своими файлами — причём прямо в корне!
Расстрелять! То-то у нас после таких приложений все SD-карточки засорены!
>мало кто из непрофессиональных юзеров
Зачем им куда то добираться? У них есть Галерея, которая автоматически всё просканирует.
>ибо путь действительно — оооочень длинный.
По гайдлайнам — /sdcard/Android/com.my.app/ — разве это длинный путь? Если уж не хотите сохранять в ExternalCacheDir так хоть сюда суйте! А теперь вы пропагандируете на Хабре засорение sd-карты своими файлами — причём прямо в корне!
+3
Эх,
>по совокупности разных факторов оба стандартных решения показались мне неоптимальными
мог бы сделать правильно и чисто, но решил просто валить в кучу в корень карты памяти…
Не совсем понял пользу вашей функции ведь вы предварительно установили эту картинку в ImageView, зачем же из неё же потом сохранять на диск? Операция сохранения на диск должна была предшествовать отображению в ImageView.
В целом статья довольно примитивна, ни тебе загрузки картинок из интернета, ни использования aSyncTask или потоков, что бы не блокировать файловыми операциями основной поток приложения, я уже не говорю, про одновлеменную загрузку множества картинок, управление очередью загрузки и т.д.
>по совокупности разных факторов оба стандартных решения показались мне неоптимальными
мог бы сделать правильно и чисто, но решил просто валить в кучу в корень карты памяти…
Не совсем понял пользу вашей функции ведь вы предварительно установили эту картинку в ImageView, зачем же из неё же потом сохранять на диск? Операция сохранения на диск должна была предшествовать отображению в ImageView.
В целом статья довольно примитивна, ни тебе загрузки картинок из интернета, ни использования aSyncTask или потоков, что бы не блокировать файловыми операциями основной поток приложения, я уже не говорю, про одновлеменную загрузку множества картинок, управление очередью загрузки и т.д.
0
Пара замечаний. Во-первых, как связаны getExternalStorageState и то, что размер чего-то не отслеживается системой? Эту функцию надо вызывать, просто чтобы проверить, доступна ли карта.
Во-вторых, соглашусь с тем, что засорять корень карты нехорошо. На мой взгляд, лучший вариант — использовать getExternalFilesDir(Environment.DIRECTORY_PICTURES) и писать туда. Еще вариант — getExternalStoragePublicDirectory.
Во-вторых, соглашусь с тем, что засорять корень карты нехорошо. На мой взгляд, лучший вариант — использовать getExternalFilesDir(Environment.DIRECTORY_PICTURES) и писать туда. Еще вариант — getExternalStoragePublicDirectory.
0
Sign up to leave a comment.
Пишем функцию сохранения картинок на SD-карту