
Yury
21.09.2017
06:23:36
да я это понимаю, я имел ввиду во время thumbnailBitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); происходит сжатие
но судя по всему, это исходный битмап такой

Dmitry
21.09.2017
06:25:13
А ты не слишком сильно его сжимаешь?

Yury
21.09.2017
06:26:17
так я его никак не сжимаю. я как понимаю в thumbnailBitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); 100 это наилучшее качество

Google

Dmitry
21.09.2017
06:27:03
Минуту

Yury
21.09.2017
06:27:16
конечно)

Dmitry
21.09.2017
06:30:13
Проблема скорее всего кроется в этом
Some formats, like PNG which is lossless, will ignore the quality setting
Тебе обязательно png отправлять?

Yury
21.09.2017
06:31:52
нет
но с jpeg вроде также было
щас попробую

Dmitry
21.09.2017
06:32:04
Попробуй jpeg

Yury
21.09.2017
06:32:25
может стоит сначало в файл записать изображение, а потом с uri работать

Dmitry
21.09.2017
06:32:43
Ну методом тыка можно попробовать
Тоже действенный способ
Посмотри сколько он будет весить после сохранения

Google

Dmitry
21.09.2017
06:34:11
Лучше на пнг тогда потесть

Yury
21.09.2017
06:37:10
с jpeg также все. разрешение изображения 146 на 260 всего. щас попрую с файлом поиграться

Kirill
21.09.2017
06:56:43
Всем привет, кто работал с бд Realm, подскажите, допустим я напишу запрос: получить данные которые изменялись 5 минут назад(одно из полей - время последнего обновления). Так как время бежит, постепенно все больше объектов будут подходить под этот фильтр. Будет ли рилм оповещать об этом или мне самому надо периодически это чекать?

Rocky
21.09.2017
07:55:42
Всем привет! Ребят, чет дело такое, помогите плиз, чето не получается создать кнопку back для textview
Подскажите

Dmitri
21.09.2017
08:12:47
Ребят, вк случаем не объявляли конкурс на android sdk? кажется что-то такое слышал но не могу найти


Denis
21.09.2017
08:21:44
Здравствуйте, уважаемые андроид разработчики. У меня есть вопрос по фрагментам.
Есть фрагмент внутри него выскакивает по нажатию на кнопку диалоговое окно с выбором даты. После выбора даты меняется поле класса фрагмента private String date и вызывается метод getData, который формирует List<>, который у меня в данном фрагменте отображается в RecyclerView:
mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int pYear, int pMonth, int pDay) {
monthForDisplay = pMonth + 1;
mDateString = pDay + "/" + monthForDisplay + "/" + pYear;
mDateButton.setText(mDateString);
getData(mChildrenId, mDateString);
}
};
________
Метод getData так же вызывается в методе onCreate фрагмента. Вопрос в том, что при первом открытии фрагмента всё отлично.
Но после выбора дата, данные в классе изменились (на основе date обновился list с данными), но во фрагменте в RecyclerView данные остались прежними, Как решить данную проблему?
Видео с демонстрацией проблемы прикрепил вверху)
Заранее спасибо)
Я не знаю как отрефрешить данные в recyclerView во фрагменте, когда данные, которые отображает RecyclerView обновились
Данные - это List, который является приватным полем класса фрагмента
Сам лист обновляется, а отображение нет (


Nikita
21.09.2017
08:26:20
adapter.notifyDatasetChanged()

Nikita
21.09.2017
08:26:29
notifyDataSetChanged()


Denis
21.09.2017
08:27:55
Никита, адаптер - это адаптер RecyclerView?
Я вызвал данный метод адаптере RecyclerView, но проблема осталась
mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int pYear, int pMonth, int pDay) {
monthForDisplay = pMonth + 1;
mDateString = pDay + "/" + monthForDisplay + "/" + pYear;
mDateButton.setText(mDateString);
getData(mChildrenId, mDateString);
mAdapter.notifyDataSetChanged();
}
};
mAdapter это экземпляр класса, реализованного в виде приватного вложенного класса
/**
* Adapter в виде приватного класса для работы RecyclerView
*/
private class Adapter extends RecyclerView.Adapter<ViewHolder> {
private List<SchoolJournal> mSchoolJournalList;
public Adapter(List<SchoolJournal> schoolJournalList) {
mSchoolJournalList = schoolJournalList;
}
/**
* Метод onCreateViewHolder вызывается виджетом RecyclerView, когда ему потребуется новое
* представление для отображения элемента. В этом методе мы создаем
* объект View и упаковываем его в ViewHolder. RecyclerView пока не ожидает, что
* представление будет связано с какими-либо данными
*/
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
View view = layoutInflater
.inflate(R.layout.school_journal_list_item_recycler_view, parent, false);
return new ViewHolder(view);
}
/**
* Метод onBindViewHolder связывает представление View объекта ViewHolder с объектом модели.
* При вызове он получает ViewHolder и позицию в наборе данных. Позиция используется для
* нахождения правильных данных модели, после чего View обновляется в соответствии
* с этими данными
*/
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
SchoolJournal schoolJournal = mSchoolJournalList.get(position);
holder.bindCrime(schoolJournal);
}
@Override
public int getItemCount() {
return mSchoolJournalList.size();
}
}


Igor
21.09.2017
08:36:53
Всем привет! Кто подскажет, почему при использовании Glide, при загрузке изображения через load(new File(pathFile) выделяется огромнейшее кол-во памяти, при том что я использую .diskCacheStrategy. И она не очишается, а только накапливается вплоть до OutOfMemory

Google

Igor
21.09.2017
08:37:31
При загузке через url проблем нет

Юрий
21.09.2017
08:39:32
new File(pathFile) не чистишь потом

Igor
21.09.2017
08:41:18

Юрий
21.09.2017
08:41:37
FIle file = new FIle()
а потом file обнуляй
после загрузки

Igor
21.09.2017
08:49:43

Roman
21.09.2017
08:53:09
народ, кто с реалмом работает
там обязательно нужно для ui иметь отдельные модели?

Anna
21.09.2017
08:54:01

Roman
21.09.2017
08:54:26
Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.

Sergey
21.09.2017
08:55:10
в доке это расписано и как с этим работать правильно

Евгений
21.09.2017
09:01:28
Всем привет
Есть аноташка @MainThread
Хочется что то похожее но чтобы в рантайме проверялся поток в котором вызывается метод.
Хочется аноташками пометить методы которые нельзя вызывать в MainThread
Вото чтоб прям валилось приложение если кто вызовет метод в MainThread
Может кто встречал нечто подобное?

Ivan
21.09.2017
09:03:59
https://developer.android.com/guide/components/processes-and-threads.html#WorkerThreads

Евгений
21.09.2017
09:05:22
Нее гугловские аноташки работают просто на этапе анализа кода. Они ниначто не влияют. Просто подсвечивают и все
И очень ограниченны в применении особенно с популярной сейчас реактивщиной
Да я знаю как они работают. И работают только в паре если оба метода помечены аноташками
Это не то.

Cherry
21.09.2017
09:10:39

Евгений
21.09.2017
09:11:27
Да я могу спасибо )
Это я знаю
Может видел кто готовое решение?

Peter
21.09.2017
09:30:27
всем привет.
столкнулся с такой проблемой: googleMap setOnCameraIdleListener срабатывает в то время пока пользователь еще двигает карту.
в результате срабатывает обновление адреса макрера. пользователю показывается адрес места, куда установлен маркер.
как результат тормоза на слабых девайсах
кто - нибудь решал такую проблему? (обновление адреса когда пользователь остановит движение)?

Google

Denis
21.09.2017
09:32:14

Евгений
21.09.2017
09:33:26
видимо придется самому писать (

Denis
21.09.2017
09:36:18

Admin
ERROR: S client not available

Евгений
21.09.2017
09:37:51
понял. смотрю.

Denis
21.09.2017
09:38:46
но она генерит классы, возможно это не круто
если интересно, вот код который пишет разработчик
https://paste.ofcode.org/33CGZ3dFMfpLppuW7wzUtvJ
а вот во что он генерится
https://paste.ofcode.org/36kDfFXP3s3vDWS4Gvqn9T7

Dmitry
21.09.2017
09:41:48
Ребята, кто-нибудь работает с nativica?

- ̗̀ Reakleases ̖́-๎๎ ̅̅ ̆̃๎๎ ̅̅ ̆̃๎๎ ̅̅ ̆̃
21.09.2017
09:41:53
да трудновато потом искать использование активити твоей
да и хер слезешь с этих аннотаций

Михаил
21.09.2017
09:44:24
В google app signing можно несколько сертификатов загрузки сделать?


Denis
21.09.2017
09:47:55
Добрый день.
У меня есть вопрос по фрагментам.
Есть фрагмент внутри него выскакивает по нажатию на кнопку диалоговое окно с выбором даты. После выбора даты меняется поле класса фрагмента private String date и вызывается метод getData, который формирует List<>, который у меня в данном фрагменте отображается в RecyclerView:
mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int pYear, int pMonth, int pDay) {
monthForDisplay = pMonth + 1;
mDateString = pDay + "/" + monthForDisplay + "/" + pYear;
mDateButton.setText(mDateString);
getData(mChildrenId, mDateString);
}
};
____
Метод getData так же вызывается в методе onCreate фрагмента. Вопрос в том, что при первом открытии фрагмента всё отлично.
Но после выбора дата, данные в классе изменились (на основе date обновился list с данными), но во фрагменте в RecyclerView данные остались прежними, Как решить данную проблему?
Видео с демонстрацией проблемы прикрепил вверху)
Заранее спасибо)
Я не знаю как отрефрешить данные в recyclerView во фрагменте, когда данные, которые отображает RecyclerView обновились
Данные - это List, который является приватным полем класса фрагмента
Сам лист обновляется, а отображение нет (
https://github.com/Denchabaev/SchoolDiary
Вот код на проект
Ребят, помогите, пожалуйста
mAdapter.notifyDataSetChanged();
не работает)


Peter
21.09.2017
09:49:54
а если перезадать адаптер?

Google

Denis
21.09.2017
09:49:55
Вернее работает, но как-то не так
Мне кажется, что пересоздать неправильно

Peter
21.09.2017
09:50:32
задавать setAdapter несколько раз не очень хорошая идея?

Denis
21.09.2017
09:50:46
есть такой вот метод:
private void getData(int idChidren, String dateString) {
SchoolLab schoolLab = new SchoolLab();
if (this.mSchoolJournalList != null) {
this.mSchoolJournalList.clear();
this.mSchoolJournalList = schoolLab.getSchoolJournalListByChildrenIdAndByDate(idChidren, mDateString);
} else {
this.mSchoolJournalList = new ArrayList<>();
this.mSchoolJournalList = schoolLab.getSchoolJournalListByChildrenIdAndByDate(idChidren, mDateString);
}
}

@
21.09.2017
09:51:27
mAdapter.notifyDataSetChanged();
public void swap(List<Lesson> data) {
if (data == null || data.size() == 0) {
return;
}
if (lessons != null && lessons.size() > 0) {
lessons.clear();
}
lessons.addAll(data);
notifyDataSetChanged();
}

Denis
21.09.2017
09:51:31
после его отработки вызываю mAdapter.notifyDataSetChanged();
если убрать из метода getData
строку
this.mSchoolJournalList.clear();
то вообще как-будто бы ничего не происходит
как на видео
которое я прикрепил выше
если же оставить метод, как есть с this.mSchoolJournalList.clear();