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

Notification с картинкой - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не видны методы стандартной библиотеки Android studio http://www.cyberforum.ru/android-dev/thread1191821.html
Пишу android приложение (Android studio).Подключаю стандартную библиотеку: import android.bluetooth.BluetoothDevice; В мануалах к этой библиотеке описаны методы, например : -...
Программирование Android Файл не открывается после загрузки из сети Действия в программе такие: сначала загружается файл из сети, затем он открывается для получения содержащихся в нем данных. В приложении я могу это сделать двумя способами: 1) Скачать файл (событие... http://www.cyberforum.ru/android-dev/thread1191768.html
Стиль ListView Программирование Android
Не могу сделать, что бы каждый элемент в ListView был в отдельной рамочке при загрузке приложения. Примерно так: Получается только, когда кликаешь на элемент, он делается в рамочке. <ListView...
TableLayout по центру Программирование Android
Есть на активити imageView и TableLayout. imageView в самом верху. Как разместить TableLayout по центу оставшегося пространства?
Программирование Android HttpClient.execute http://www.cyberforum.ru/android-dev/thread1191139.html
Привет всем, при работе этого кода почему то программа вылетает с ошибкой. public String getXmlFromUrl(String url) { String xml = null; try { //...
Программирование Android Запись видео TimerTask() Нужно записывать видео при нажатии на кнопку(видео определенной длительности например 10 мин) и создавалось несколько видео файлов пока не будет нажата кнопка стоп. Запись видео вызываю: public... подробнее

Показать сообщение отдельно
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
29.05.2014, 10:58
для того чтобы узнать размеры изображени до загрузки есть такой нехитрый хак:

Java
1
2
3
4
5
6
// Получаем реальные размеры изображения
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(path, options);
        int height = options.outHeight;
    int width = options.outWidth;
с параметром inJustDecodeBounds = true сама битмапка не грузится - загружаются только сведения о ее размерах - очень полезно. Если, например твоя вьюха намного меньше чем картинка, то ты при загрузке можешь ее смасштабировать кратно 2 (т.е. уменьшить в 2, 4, 8 и т. д. раз) - очень и очень полезно для экономии памяти - вот пример:

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
int inSampleSize = 1;
 
            Log.e("pic", "Исходные размеры битмапки: " + width
                    + " x " + height);
            Log.e("pic", "Размеры вьюхи: " + reqWidth + " x " + reqHeight);
 
            if (height > reqHeight || width > reqWidth) {
 
                final int halfHeight = height / 2;
                final int halfWidth = width / 2;
 
                // Вычисляем максимальный коэффициент уменьшения изображения
                // (который равен степени числа 2) с учетом, что размеры
                // отмасштабированной картинки должны быть не менее, чем
                // требуемые
 
                while ((halfHeight / inSampleSize) > reqHeight
                        && (halfWidth / inSampleSize) > reqWidth) {
                    inSampleSize *= 2;
                }
BitmapFactory.Options options = new BitmapFactory.Options();            
options.inSampleSize = inSampleSize;
// Получаем сжатое изображение
            options.inJustDecodeBounds = false;
            Bitmap bitmap = BitmapFactory.decodeFile(path, options);
А вообще лучше не пытаться подстроиться под картинку в панели уведомлений, т. к. результат может быть неожиданный - например картинка будет очень высокая. задай фиксированную высоту и сделай в ImageView scaleType = centerCrop
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru