Android: программный выбор изображения Gallary

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

--- Редактировать ----

public void onCreate() {
//other code

    ga = (Gallery)findViewById(R.id.photo_gallary);
    imageView = (ImageView)findViewById(R.id.gallary__full_img);

    ga.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            displayFullImg(arg2);               
        }           
    });


ga.setAdapter(new ImageAdapter(this));
ga.setSelection(0);
}//onCreate

private void displayFullImg(int arg2){
  Item item = pics.get(arg2);
  String url = item.getImageUri();
  imageView.setImageBitmap(url);
}

person Venkat Papana    schedule 06.06.2011    source источник
comment
не работает gallery.setSelection (0)?   -  person Aleadam    schedule 06.06.2011
comment
Привет, Aleadam, я пробовал это, но не работал.   -  person Venkat Papana    schedule 06.06.2011
comment
Почему вы не можете использовать тот же метод, что и в обратном вызове onClick? Вы можете использовать gallery.getSelectedView () для получения представления (возможно, после установки его в 0, как указано выше).   -  person Aleadam    schedule 06.06.2011
comment
Венкат (или Нехата?), Я почти уверен, что gallery.setSelection(int) работает, не могли бы вы опубликовать полный код, где вы это используете? Вероятно, галерея еще не завершила рендеринг.   -  person dmon    schedule 06.06.2011
comment
Привет @dmon, я обновил свой исходный пост. пожалуйста, посмотрите.   -  person Venkat Papana    schedule 06.06.2011
comment
это displayFullImg (0); не работает?   -  person    schedule 06.06.2011


Ответы (2)


Вы можете использовать напрямую

imageView.setImageBitmap(pics.get(0).getImageUri());
person Aleadam    schedule 06.06.2011
comment
Спасибо, Aleadam, это работает :) Что делать, если я хочу установить n-е изображение и хочу программно прокрутить Галлерию до n-й позиции? - person Venkat Papana; 06.06.2011
comment
@Venkat setSelection (n) должен прокрутить до этой позиции. Вы можете использовать тот же метод pics.get(n) для возврата желаемого URI. Просто убедитесь, что вы проверили перед тем, существует ли URI на самом деле. - person Aleadam; 07.06.2011
comment
@dmon это могло быть, но если всего одна строчка кода справится с задачей, я обману! ; ^) - person Aleadam; 07.06.2011
comment
@Aleadam, setSelection (n) отлично работает для прокрутки. Спасибо :) - person Venkat Papana; 07.06.2011

Попробуй это:

      ga.post(new Runnable() {
        @Override
          public void run() {
            ga.setSelection(0);
          }
        }
      });
person dmon    schedule 06.06.2011