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

Увеличить изображение из HorizontalScrollView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Разница между двумя датами http://www.cyberforum.ru/android-dev/thread882426.html
Вообщем проблема такая получаю 1 дату start = System.currentTimeMillis() через некоторое время получаю 2 дату finish = System.currentTimeMillis() нужно узнать прошли ли сутки т.е finish - start > чем 1 сутки или нет
Программирование Android Нужно ли что - нибуть устанавливать на смартфоне для запуска Native Activity? Ну вопрос в шапке. Нужно ли на сам смартфон с андройдом что - то доставлять, чтоб на нём запускалась игра, созданная при помощи NDK? http://www.cyberforum.ru/android-dev/thread882359.html
Как открыть проект в екслипсе ? :-) Программирование Android
Что - то я совсем почувствовал себя валенком :-) . Хочу открыть пример из NDK под названием native activity. Ну есть там эта папка с файлами, а как мне в эклипе открыть проект, чтоб он нормально загрузился со всеми файлами? :-)
Программирование Android Проблемы получения JSON c Яндекса
Добрый день! Решил разобраться с JSON-парсингом. В процессе поиска ресурсов, с которых можно получить данные в этом формате, набрёл на ссылочку с одного форума: http://api-fotki.yandex.ru/api/users/styleroom/album/49312/photos/?format=json Вставляю её в строку браузера - всё ОК, выгружаю кучу данных. Пытаюсь сделать это программно - приходит ответ "Authorization required". Нашёл другой...
Программирование Android Последовательное выполнение Async Tasks и progressdialog http://www.cyberforum.ru/android-dev/thread882258.html
как используя asyncTask.execute(); asyncTask.get(); вывести progressdialog?
Программирование Android Можно ли писать игры на OpenGL ES под андройд ваще без Java? Можно ли писать программки под андройд полностью без джавы на чистом NDK? Может как то с использованием native activity ? подробнее

Показать сообщение отдельно
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666

Увеличить изображение из HorizontalScrollView - Программирование Android

28.05.2013, 20:34. Просмотров 1068. Ответов 10
Метки (Все метки)

Я загружаю изображения из сети, после их помещаю в ArrayList и из него эти изображения достаю и помещаю в LinerLoyout в горизонтальном ScrollView. Мне необходимо по нажатию на изображение отлавить, что за картинка нажата, т.е заранее передав ей её id или ещё что нить. У меня в ArrayList хранятся две URL одно на маленькую картинку, второе на большую, но пока я здесь использую маленькую. В коде выглядит String st = (urlFrame.get("thumb")); где "thumb" маленькая а, "big" большая.

вот код:
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
public void getFrame() {
        framesList = new ArrayList<HashMap<String, String>>();
        try {
            JSONParser jParserCat = new JSONParser();
    JSONObject jsonMeTopCategory = jParserCat.getJSONFromUrl(url);
            try {
    categoryArray = jsonMeTopCategory.getJSONArray("contents");
 
                for (int n = 0; n < categoryArray.length(); n++) {
 
                    JSONObject c = categoryArray.getJSONObject(n);
 
                    JSONObject content1 = c.getJSONObject("content");
 
                    String id_content = content1.getString("id");
 
                            if (id_content.equals(myIdNextContentGot)) {
 
categoryArray2 = content1.getJSONArray("frames");
 
                        for (int n2 = 0; n2 < categoryArray2.length(); n2++) {
 
                            JSONObject c2 = categoryArray2.getJSONObject(n2);
 
                            JSONObject content2 = c2.getJSONObject("frame");
                            String nameFrameThumb = content2.getString("thumb");
                            String nameFrameBig = content2.getString("big");
 
                            mapMY = new HashMap<String, String>(); // добавил
 
                            mapMY.put(KEY_1_FRAME_THUMB, nameFrameThumb);
                            mapMY.put(KEY_2_FRAME_BIG, nameFrameBig);
 
                            framesList.add(mapMY);
 
                        }
                    
                    }
    }
 
            } catch (Exception e) {
                // TODO: handle exception
            }
 
                } catch (Exception e) {
            e.printStackTrace();
        }
 
        in = 0;
        myGallery.removeAllViews(); // очищает макет (LinearLoyout)
        for (int i = 0; i < framesList.size(); i++) {
            myGallery.addView(insertPhoto());
        }
 
    }
 
View insertPhoto() {
 
        HashMap<String, String> urlFrame = new HashMap<String, String>();
 
        urlFrame = framesList.get(in);
        in++;
 
        String st = (urlFrame.get("thumb"));
 
        Bitmap bm = null;
        bm = ImageManager.downloadImage(st);
 
        LinearLayout layout = new LinearLayout(getActivity());
        layout.setLayoutParams(new LayoutParams(65, 56)); // 250, 250
        layout.setGravity(Gravity.CENTER);
 
        ImageView imageView = new ImageView(getActivity());
        imageView.setLayoutParams(new LayoutParams(45, 45)); // 220, 220
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setImageBitmap(bm);
 
        layout.addView(imageView);
        
        imageView.setOnClickListener(new OnClickListener(){
 
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(), 
                        "Clicked - " + getId(), 
                        Toast.LENGTH_LONG).show();
            }});
        
        
        return layout;
    }
первый метод это загрузка и парсинг данных из сети, второй собственно загрузка изображений в ScrollView. Изображения загружаю с помощью ImageManager, вот код класса:
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
public class ImageManager {
  private final static String TAG = "ImageManager";
 
  /** Private constructor prevents instantiation from other classes */
  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();
    }
    return bitmap;
  }
}
надеюсь правильно сформулировал то, что я хочу.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru