Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
#1

Передача изображений в виджет

01.02.2015, 05:49. Просмотров 349. Ответов 0
Метки нет (Все метки)

Доброго времени суток господа.
Пытаюсь написать виджет. Столкнулся с проблемой загрузки изображения из интернета. С этим кое как справился.
Но, теперь стоит вопрос: Как предать изображение в виджет?

Имеется класс, который загружает изображение
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
import java.io.BufferedInputStream;
  import java.io.IOException;
  import java.net.HttpURLConnection;
  import java.net.MalformedURLException;
  import java.net.URL;
 import android.graphics.Bitmap;
   import android.graphics.BitmapFactory;
   import android.os.Handler;
   import android.os.Message;
   import android.util.Log;
   import android.widget.ImageView;
  
   public class ImageManager {
   private final static String TAG = "ImageManager";
  
   /** Private constructor prevents instantiation from other classes */
   private ImageManager () {}
  
   public static void fetchImage(final String iUrl, final ImageView iView) {
   /*if ( iUrl == null || iView == null )
   return;*/
  
   final Handler handler = new Handler() {
   @Override
   public void handleMessage(Message message) {
   final Bitmap image = (Bitmap) message.obj;
   iView.setImageBitmap(image);
   }
   };
  
   final Thread thread = new Thread() {
   @Override
   public void run() {
   final Bitmap image = downloadImage(iUrl);
   if ( image != null ) {
   Log.v(TAG, "Got image by URL: " + iUrl);
   final Message message = handler.obtainMessage(1, image);
  handler.sendMessage(message);
 } 
   }
   };
   iView.setImageResource(R.drawable.ic_launcher);
   thread.setPriority(3);
   thread.start();
   }
  
   public static Bitmap downloadImage(String iUrl) {
   Bitmap bitmap = null;
   HttpURLConnection conn = null;
   BufferedInputStream buf_stream = null;
   try {
   Log.v(TAG, "Starting loading image by URL: " + iUrl);
   conn = (HttpURLConnection) new URL(iUrl).openConnection();
   conn.setDoInput(true);
   conn.setRequestProperty("Connection", "Keep-Alive");
   conn.connect();
   buf_stream = new BufferedInputStream(conn.getInputStream(),8192);
   bitmap = BitmapFactory.decodeStream(buf_stream);
   buf_stream.close();
   conn.disconnect();
   buf_stream = null;
   conn = null;
   } catch (MalformedURLException ex) {
   Log.e(TAG, "Url parsing was failed: " + iUrl);
   } catch (IOException ex) {
   Log.d(TAG, iUrl + " does not exists");
   } catch (OutOfMemoryError e) {
   Log.w(TAG, "Out of memory!!!");
   return null;
   } finally {
   if ( buf_stream != null )
   try { buf_stream.close(); } catch (IOException ex) {}
   if ( conn != null )
   conn.disconnect();
   }
   if ( bitmap != null )
       Log.v(TAG, "Got image by URL: " + iUrl);
   return bitmap;
   }
  }
На вход он требует урл и имейджвиев
fetchImage(final String iUrl, final ImageView iView).
После чего, в другом классе я парсю json и хочу именно там, уже знать свое изображение. Допустим, залил я его там в какой-то имеджвиев. И хочу передать, но не знаю как это сделать. Как, что и куда тыкнуть в Preferences. И как потом это прочитать на стороне виджета.
А может у вас есть какой-то лучший способ загрузки?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2015, 05:49
Ответы с готовыми решениями:

Виджет
на активити виджета у меня есть один textviews, я хочу программно изменить...

Виджет приложения
Здравствуйте. Скажите, пожалуйста, как добавить к приложению виджет? Чтобы...

Посоветуйте виджет
Привет ребята! Каждая девушка хочет иметь гламурную плюшку:) Не факт что...

Виджет с часами
Пишу виджет, который показывает время. Запускаю часы на эмуляторе (Android...

Обработка нажатий на виджет
Подскажите пожалуйста. Из уроков так и не понял. 1 Как сделать чтобы при...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2015, 05:49

Обработка нажатий на виджет
Почему не работает при нажатии на виджет? @Override public void...

Нужно опознать виджет
на сайте...

Угадать виджет по рисунку
Добрый день! Как называется данный элемент (выделено стрелкой)? И есть ли он в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru