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

LruCache метод put возвращает null - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Позиционирование картинок http://www.cyberforum.ru/android-dev/thread939775.html
Мне бы хотелось научиться позиционировать картинки относительно нажатой области экрана
Программирование Android SimpleExpandableListAdapter Доброго времени суток! Подскажите, как можно заменить данные из SimpleExpandableListAdapter по аналогии с ViewBinder? Если есть, то небольшой пример весьма не помешает. Спасибо. http://www.cyberforum.ru/android-dev/thread939753.html
Запуск активности из класса, который не наследуется от Activity Программирование Android
Есть класс, который отвечает за обработку логики. Есть функция, которая при определенном условии должна открыть новую форму(Активити). Подскажите, возможно ли это? Логика всей программы такая: в...
Программирование Android Как запустить активити без прописывания в манифесте?
неужели нельзя создавать активити динамически?
Программирование Android Компиляция занимает примерно полторы минуты. Очень долго http://www.cyberforum.ru/android-dev/thread939623.html
Подскажите пожалуйста, возможно ли сделать компиляцию более быстрой? Работаю в эклипс helios. p.s да и запуск эмулятора иногда около 20 минут... я и не думал, что при программировании под...
Программирование Android obfuscator и ручная компиляция Как сделать подобное: 1) создать BAT-файл для перекомпиляции проекта. Пользуюсь Андроид-студией, но думаю это не существенно -только конечный файл и временные папки отличаются. 2) создать... подробнее

Показать сообщение отдельно
ASAndrey
1 / 1 / 0
Регистрация: 13.07.2013
Сообщений: 78

LruCache метод put возвращает null - Программирование Android

18.08.2013, 18:00. Просмотров 691. Ответов 2
Метки (Все метки)

Всем привет! Не могу поянть почему LruCache метод put возвращает null. Может быть кто знает подскажет в чем тут дело? Вот код:
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class QwerAdapter extends ArrayAdapter<ListQwers> {
    private int resource;
    private LayoutInflater inflater;
    private Context context;
    private ListQwers listQwers;
    private LruCache<String, Bitmap> memoryCache;
 
    public QwerAdapter(Context ctx, int resourceId, List objects) {
 
        super(ctx, resourceId, objects);
        resource = resourceId;
        inflater = LayoutInflater.from(ctx);
        context = ctx;
 
        int cacheSize = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
        cacheSize = (cacheSize / 4) * 1024 * 1024;
 
        memoryCache = new LruCache<String, Bitmap>(cacheSize) {
            @Override
            public int sizeOf(String key, Bitmap bitmap) {
                int getBytesImage;
                if (Build.VERSION.SDK_INT >= 12){
                     getBytesImage = bitmap.getByteCount();
                }else{
                    getBytesImage = bitmap.getRowBytes() * bitmap.getHeight();
                }
                return getBytesImage;
            }
        };
        
    }
 
    @Override   public View getView(int position, View convertView, ViewGroup parent) {
 
        convertView = (RelativeLayout) inflater.inflate(resource, null);
        listQwers = getItem(position);
        new DisplayImageFromURL(
                (ImageView) convertView.findViewById(R.id.imageQwer))
                .execute("путь до изображения");
        return convertView;
    }
 
    private class DisplayImageFromURL extends AsyncTask<String, Void, Bitmap> {
        ImageView bmImage;
 
         public DisplayImageFromURL(ImageView bmImage) {
         try{
         this.bmImage = bmImage;}catch(Exception e){}
         }
 
        protected Bitmap doInBackground(String... urls) {
            String urldisplay = urls[0];
            Bitmap mIcon11 = null;
            try {
 
                Bitmap imageQwer = memoryCache.get(urldisplay);
                if (imageQwer != null) {
                    mIcon11 = imageQwer;
                } else if (imageQwer == null) {
                    InputStream in = new java.net.URL(urldisplay).openStream();
                    Bitmap image = null;
                     
                    image = BitmapFactory.decodeStream(in);
                                        int qwer = image.getByteCount(); // размер изображения в байтах получается 32400 байт
                                        // размер выделенного кэша получается 4194304, так что памяти точно хватает для размещения одной тестовой картинки.
                    mIcon11 = memoryCache.put(urldisplay,image);// memoryCache.put возвращает null 
                    mIcon11 = image;
                }
 
            } catch (Exception e) {
                e.printStackTrace();
            }
 
            return mIcon11;
 
        }
 
        protected void onPostExecute(Bitmap result) {
            try{
                bmImage.setImageBitmap(result);}catch(Exception e){}
        }
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.