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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
porcki
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 27
#1

Ресурсы из интернета - Android

07.05.2013, 21:07. Просмотров 486. Ответов 7
Метки нет (Все метки)

всем привет и извините если такая тема есть, но мне нужна ваша помощь. делаю приложение для просмотра картинок. есть список с категориями и тут уже возникает первый вопрос: нужно создать столько активностей сколько и категорий, или можно по другому?
второе: если будет много картинок и все хорошего качества то приложение будет много весить. можно ли хранить картинки где то на сайте и загружать их от туда. через массив адресов?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 21:10     Ресурсы из интернета #2
Цитата Сообщение от porcki Посмотреть сообщение
есть список с категориями и тут уже возникает первый вопрос: нужно создать столько активностей сколько и категорий, или можно по другому?
можно на одной активити.


Цитата Сообщение от porcki Посмотреть сообщение
второе: если будет много картинок и все хорошего качества то приложение будет много весить. можно ли хранить картинки где то на сайте и загружать их от туда. через массив адресов?
можно просто запросы к серверу по индексу картинки делать чтобы массивов с адресами не создавать.
porcki
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 27
07.05.2013, 23:04  [ТС]     Ресурсы из интернета #3
если не затруднит можно ссылки или хотя бы в какую сторону смотреть.

Добавлено через 1 час 48 минут
как работать с сервером?
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.05.2013, 23:53     Ресурсы из интернета #4
Цитата Сообщение от porcki Посмотреть сообщение
как работать с сервером?
со стороны клиента? POST/GET запросами.
porcki
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 27
08.05.2013, 14:07  [ТС]     Ресурсы из интернета #5
я так понял надо через асинхроный поток?
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
08.05.2013, 14:13     Ресурсы из интернета #6
да.
porcki
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 27
08.05.2013, 18:15  [ТС]     Ресурсы из интернета #7
нашел пример загрузки картинок в TEXTVIEW работает. но выводит только одну. как сделать что бы при клике кнопки картинки менялись.
Кликните здесь для просмотра всего текста
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
111
112
113
114
115
116
117
118
119
120
121
122
package ru.bartwell.textviewimgtag;
 
import java.io.InputStream;
import java.lang.ref.WeakReference;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Collections;
import java.util.Map;
import java.util.WeakHashMap;
 
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Html;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.TextView;
 
public class MainActivity extends Activity {
    final String message[] ={ "<img src=\"http://slimbody.besaba.com/images/images2.jpg\">",
            "<img src=\"http://slimbody.besaba.com/images/images3.jpg\">"
    };
    final TextView messageView = (TextView) findViewById(R.id.message);
    public int one=0;
    static final Map<String, WeakReference<Drawable>> mDrawableCache = Collections
            .synchronizedMap(new WeakHashMap<String, WeakReference<Drawable>>());
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final TextView messageView = (TextView) findViewById(R.id.message);
 
        Html.ImageGetter igLoader = new Html.ImageGetter() {
            public Drawable getDrawable(String source) {
                if (mDrawableCache.containsKey(source))
                    return mDrawableCache.get(source).get();
                new ImageDownloadAsyncTask(source, message[1], messageView)
                        .execute();
                return new BitmapDrawable(getResources());
            }
        };
        messageView.setText(Html.fromHtml(message[1], igLoader, null));
        
    }
    public void onClick(View v){
        one++;
        
    }
    
    
 
    Html.ImageGetter igCached = new Html.ImageGetter() {
        public Drawable getDrawable(String source) {
            if (mDrawableCache.containsKey(source))
                return mDrawableCache.get(source).get();
            return null;
        }
    };
 
    class ImageDownloadAsyncTask extends AsyncTask<Void, Void, Void> {
        private String source;
        private String message;
        private TextView textView;
 
        public ImageDownloadAsyncTask(String source, String message,
                TextView textView) {
            this.source = source;
            this.message = message;
            this.textView = textView;
        }
 
        @Override
        protected Void doInBackground(Void... params) {
            if (!mDrawableCache.containsKey(source)) {
                try {
                    URL url = new URL(source);
                    URLConnection connection = url.openConnection();
                    InputStream is = connection.getInputStream();
 
                    Drawable drawable = Drawable.createFromStream(is, "src");
 
                    // Если нужно, чтобы рисунки не масштабировались,
                    // закомментируйте строчку выше и расскомментируйте код
                    // ниже.
 
                    /*
                    Bitmap bmp = BitmapFactory.decodeStream(is);
                    DisplayMetrics dm =
                    MainActivity.this.getResources().getDisplayMetrics();
                    bmp.setDensity(dm.densityDpi); Drawable drawable=new
                    BitmapDrawable(MainActivity.this.getResources(),bmp);
                    */
 
                    is.close();
 
                    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
                            drawable.getIntrinsicHeight());
                    mDrawableCache.put(source, new WeakReference<Drawable>(
                            drawable));
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (Throwable t) {
                    t.printStackTrace();
                }
            }
            return null;
        }
 
        @Override
        protected void onPostExecute(Void result) {
            textView.setText(Html.fromHtml(message, igCached, null));
        }
    }
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2013, 20:13     Ресурсы из интернета
Еще ссылки по теме:

Создать свою папку под ресурсы Android
Android Локальные ресурсы
Android Android Studio - строковые ресурсы
Android Литература и ресурсы по Android UI UX
Android Ресурсы android studio

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
08.05.2013, 20:13     Ресурсы из интернета #8
http://developer.android.com/trainin...aps/index.html
http://android-developers.blogspot.c...rformance.html
https://github.com/nostra13/Android-...l-Image-Loader
Yandex
Объявления
08.05.2013, 20:13     Ресурсы из интернета
Ответ Создать тему
Опции темы

Текущее время: 02:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru