Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для algoritm256
9 / 9 / 5
Регистрация: 05.02.2012
Сообщений: 147
Записей в блоге: 1

Загрузка в ImageView картинки по ссылке в отдельном потоке. Исправить код

24.04.2014, 04:08. Показов 3595. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пытаюсь загрузить картинку по ссылке из инета в ImageView в отдельном потоке. Поток реализовывал путем перегрузки метода run, но при запуске ничего не происходит. Подскажите пожалуйста, где туплю. Заранее спасибо!

MainActivity
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
package com.example.informerkg;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
 
public class MainActivity extends Activity implements OnClickListener {
 
    ImageButton btnMeteo;
    Intent intent;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btnMeteo= (ImageButton) findViewById(R.id.btnMeteo);
        
        btnMeteo.setOnClickListener(this);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
            intent= new Intent(this, MeteoActivity.class);
            startActivity(intent);
        }
    }
 
}
MeteoActivity
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
package com.example.informerkg;
 
import java.net.URL;
 
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.Toast;
 
public class MeteoActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.meteo);
        
        ImageView imgMeteo= (ImageView) findViewById(R.id.imgMeteo);
        
        String url_meteo= "http://www.informer.kg/pog/pngs/informer12.png";
        
        new LoadImageTask(imgMeteo, url_meteo);
        setResult(RESULT_OK);
        finish();
    }
}
Класс LoadImageTask, в котором и запускается поток, загружающий картинку с сети
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
import java.io.InputStream;
import java.net.URL;
 
import android.graphics.drawable.Drawable;
import android.widget.ImageView;
 
public class LoadImageTask implements Runnable {
    private ImageView iv= null;
    private  String url_meteo= null;
 
    public LoadImageTask(ImageView iv, String url_meteo){
        this.iv= iv;
        this.url_meteo= url_meteo;
        new Thread(this).start();
    }
 
    private Drawable LoadImageFromWebOperations(String url_meteo) {
        try {
            InputStream is = (InputStream) new URL(url_meteo).getContent();
            Drawable d = Drawable.createFromStream(is, "meteo.png");
            return d;
        } catch (Exception e) {
            //Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG);
            return null;
        }
    }
 
    @Override
    public void run() {
        // TODO Auto-generated method stub
        try{
            iv.setImageDrawable(LoadImageFromWebOperations(url_meteo));
        }
        catch(Exception e){
            //Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG);
            return;
        }
    }
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2014, 04:08
Ответы с готовыми решениями:

GDI+. Почему в отдельном потоке картинки сохраняются как белые прямоугольники, а в основном потоке - всё Ок?
Всем привет, делаю функцию уменьшения картинок при помощи библиотеки GDI+, в отдельном потоке происходит уменьшение картинки и её...

Загрузка в DataTable из БД в отдельном потоке
Всем привет. Работаю над небольшой программкой, для просмотра таблицы БД Access 2007. Состоит из окна, в нем DataGridView. При загрузке...

Вывод картинки на панель в отдельном потоке
Метод run() объявлен в классе, который реализует интерфейс Runnable. tForSlides - атрибут этого же класса. public void run() { ...

1
14 / 14 / 5
Регистрация: 08.04.2013
Сообщений: 75
24.04.2014, 07:55
Доступ из порожденного потока к GUI потоку напрямую запрещен.
Вот хорошая статья на эту тему:
http://habrahabr.ru/company/ea... og/192998/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2014, 07:55
Помогаю со студенческими работами здесь

Загрузка картинки из Ethernet-а в imageview
Здравствуйте. Есть код public String grabImageFromUrl(String url, String path) { try { InputStream is =...

ImageView - загрузка картинки из SDCARD
Написал класс который отображает в ImageView картинку которая лежит в SDCARD. public class ShowPictureInSD { public static...

Загрузка картинки на сервер по ссылке, отправка, удаление картинки
Какие есть методы, чтобы: а) Загрузить на сервер в папку ../temp картинку по ссылке (например,...

Выполнить код в отдельном потоке
Доброго времени суток уважаемые! Помогите пожалуйста разобраться с основами многопоточности. Предположим у нас есть класс, class1(); ,...

Второстепенный код в отдельном потоке
Доброго времени!!! Помогите! по нажатии на кнопку начинает выполняться код, он может выполняться очень долго. хотел вынести в отдельный...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru