Форум программистов, компьютерный форум 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
28.05.2013, 20:34     Увеличить изображение из HorizontalScrollView
Я загружаю изображения из сети, после их помещаю в 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;
  }
}
надеюсь правильно сформулировал то, что я хочу.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru