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

Загрузки изображений из сети в адаптере GridView - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Fragments http://www.cyberforum.ru/android-dev/thread1065474.html
Здравствуйте, я новичок и многого не понимаю. У меня такой вопрос, что содержит в себе приложение по типу ВКонтаке и Facebook. Я имею ввиду NavigationDrawer и несколько фрагментов? Или что-то другое, если я прав, то не могли бы Вы привести пример как сделать, так чтобы при нажатии на определенный элемент NavigationDrawer открывался определенный фрагмент. Заранее благодарю за ответ.
Android Вывод картинки при выполнении условия Доброго времени суток нужна помощь необходимо выводить картинку при выполнении условия подскажите как это сделать http://www.cyberforum.ru/android-dev/thread1065274.html
Локальная база данных в JSON. Возможно ли сразу добавить её в файлы приложения Android
Есть база данных в формате JSON. Возможно ли сразу добавить её в файлы приложения и использовать её как локальную базу?
Замена цвета background с задержкой для ячейки ListView Android
Здравствуйте! Я делаю приложение для тестов. Собственно хочу реализовать следующие. Есть ListView, при нажатии на ячейку если ответ правильный меняется background ячейки на зеленый, если нет то background красный. После этого делается пауза на 1 секунду, все ячейки возвращаются в предыдущие состояние и загружается новая колекция для адаптера. Да используется BaseAdapter. У меня не...
Android Анимация http://www.cyberforum.ru/android-dev/thread1064931.html
Доброго всем дня! Прошу помощи в таком вопросе. Сделал анимаюцию по нажатию на кнопку, выплывающий view, находится она в Pager и собственно такая картина, анимация срабатывает, но вот вторично при нажатии на кнопку не работает, если же перелистнуть pager, то в новосозданном view анимация срабатывает также один раз, вторичное нажатие ничего не дает. Так же если отработать анимацию, после чего...
Android Страница пользователя, работа с текстом День добрый! Подскажите как реализовать данную функцию: есть активити с текстом, нужна страница с настройками на которой пользователь мог бы выбирать размер шрифта:мелкий/средний/крупный +и пункт - ночной режим с инверсией цвета (черный фон и белый/светлосерый шрифт) подробнее

Показать сообщение отдельно
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
19.01.2014, 00:59  [ТС]     Загрузки изображений из сети в адаптере GridView
Сделал я вашим способом, и не работает:
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
public class GridViewAdapter extends BaseAdapter {
     
    private static class ViewHolder {
        TextView name,count_download;
        ImageView icon;
        Main m;
        
        String id,url_id,script,icon_lnk,icon_name;
        
        
 
    }
 
    private Context context;
    private List<HashMap<String, String>> arrayList;
    private LayoutInflater layoutInflater;
    private Set<String> inProgressSet = Collections.synchronizedSet(new HashSet<String>());
 
    GridViewAdapter(Context context, List<HashMap<String, String>> data) {
        this.context = context;
        this.arrayList = data;
        layoutInflater = LayoutInflater.from(context);
    }
 
    @Override
    public int getCount() {
        return arrayList.size();
    }
 
    @Override
    public Object getItem(int position) {
        return arrayList.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
    
    String getName(String s){
        int dotIdx = s.lastIndexOf('/');
        String o = s.substring(dotIdx+1);
        return o;
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder viewHolder;
 
        if(convertView == null) {
            convertView = layoutInflater.inflate(R.layout.main_activity_item, null);
            viewHolder = new ViewHolder();
            viewHolder.name = (TextView)convertView.findViewById(R.id.name);
            viewHolder.icon = (ImageView)convertView.findViewById(R.id.icon);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder)convertView.getTag();
        }
 
        Animation animation = AnimationUtils.loadAnimation(context, R.anim.rotate); 
        
        viewHolder.name.setText(arrayList.get(position).get("name"));
        viewHolder.icon.startAnimation(animation);
        viewHolder.script = arrayList.get(position).get("script");
        viewHolder.url_id = arrayList.get(position).get("url_id");
        viewHolder.id = arrayList.get(position).get("id");
        viewHolder.icon_lnk = arrayList.get(position).get("icon");
        viewHolder.icon_name = getName(viewHolder.icon_lnk);
        
 
        new ImageFetcher("http://192.168.0.20/"+viewHolder.icon_lnk, viewHolder.icon).execute();
        return convertView;
    }
 
    class ImageFetcher extends AsyncTask<Void, Void, Bitmap> {
         
        private String imageUrl;
        private ImageView imageView;
 
        ImageFetcher(String imageUrl, ImageView imageView) {
            this.imageUrl = imageUrl;
            this.imageView = imageView;
        }
 
        @Override
        protected Bitmap doInBackground(Void... params) {
            if (inProgressSet.contains(imageUrl)) {
                return null;
            }
            Bitmap fromMemoryCache = TheApplication.getInstance().getBitmapFromMemCache(imageUrl);
            if (fromMemoryCache != null) {
                return fromMemoryCache;
            }
            inProgressSet.add(imageUrl);
            //fetch from network
            return null;
        }
 
        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);            
            if (bitmap == null) return;
            inProgressSet.remove(imageUrl);
            TheApplication.getInstance().addBitmapToMemoryCache(imageUrl, bitmap);
            imageView.setImageBitmap(bitmap);
        }
    }
    
     
   }
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
class TheApplication extends Application {
 
    private static TheApplication sApplication;
    private LruCache<String, Bitmap> mMemoryCache;
 
    public static TheApplication getInstance() {
        return sApplication;
    }
 
 
protected void onCreate(Bundle savedInstanceState) {
    sApplication = this;
    final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
    final int cacheSize = maxMemory / 8;
 
    mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
        @Override
        protected int sizeOf(String key, Bitmap bitmap) {
            // The cache size will be measured in kilobytes rather than
            // number of items.
            return bitmap.getByteCount() / 1024;
        }
    };
}
 
public void addBitmapToMemoryCache(String key, Bitmap bitmap) {
    if (getBitmapFromMemCache(key) == null) {
        mMemoryCache.put(key, bitmap);
    }
}
 
public Bitmap getBitmapFromMemCache(String key) {
    return mMemoryCache.get(key);
}
}
Добавлено через 35 секунд
Может я чтото криво сделал?
Код
01-18 20:57:53.368: E/AndroidRuntime(2078): FATAL EXCEPTION: main
01-18 20:57:53.368: E/AndroidRuntime(2078): java.lang.RuntimeException: Unable to instantiate application ru.homeandroid.TheApplication: java.lang.IllegalAccessException: access to class not allowed
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.LoadedApk.makeApplication(LoadedApk.java:509)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4417)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.ActivityThread.access$1300(ActivityThread.java:141)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.os.Handler.dispatchMessage(Handler.java:99)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.os.Looper.loop(Looper.java:137)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.ActivityThread.main(ActivityThread.java:5103)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at java.lang.reflect.Method.invokeNative(Native Method)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at java.lang.reflect.Method.invoke(Method.java:525)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at dalvik.system.NativeStart.main(Native Method)
01-18 20:57:53.368: E/AndroidRuntime(2078): Caused by: java.lang.IllegalAccessException: access to class not allowed
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at java.lang.Class.newInstanceImpl(Native Method)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at java.lang.Class.newInstance(Class.java:1130)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.Instrumentation.newApplication(Instrumentation.java:990)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.Instrumentation.newApplication(Instrumentation.java:975)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
01-18 20:57:53.368: E/AndroidRuntime(2078): 	... 11 more
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru