2012-04-05 1 views
4

Я использую Галерею как этоговид Галереи начинается не с левой

<Gallery 
    android:id="@+id/gallery1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10dp" 
    android:spacing="2dp" > 
</Gallery> 

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

+0

Вы используете адаптер? Если да, можете ли вы опубликовать код для вашего адаптера? – Deva

+0

Это сообщение поможет: http://stackoverflow.com/questions/4341158/android-align-first-item-in-gallery-to-the-left –

ответ

2

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

Gallery mGallery= (Gallery) findViewById(R.id.gallery); 
mGallery.setSelection(1); 

затем продолжить нормальную работу :)

+1

Спасибо за ответ, но он не работает –

0

Установить левый край галереи к отрицательному числу (скажем -80 погружной). Для того, чтобы правильно рассчитать вы бы проверить ширину экрана во время выполнения, а затем дали вашей деталь (изображение) ширину вы будете делать что-то вроде:

int offset = width/2 - itemWidth/2; // you may add your spacing here too 
    MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams(); 
    mlp.setMargins(-offset, mlp.topMargin, mlp.rightMargin, mlp.bottomMargin); 
1

Что вам нужно использовать, .setSelection не .setSelected, пример ниже

Галерея галереи = (Галерея) findViewById (R.id.gallery);

gallery.setSelection (1);

0

Попробуйте это будет работать .....

Gallery g=(Gallery)findViewById(R.id.gallery1);

MarginLayoutParams mlp=(MarginLayoutParams)g.getLayoutParams();

mlp.setMargins(-200, 0, 0, 0);

2

Вы должны использовать setSelection (1), но важно, чтобы поместить его после setAdapter() , В другом случае это не сработает.

Gallery gallery = (Gallery) findViewById(R.id.gallery); 
gallery.setAdapter(new GalleryImageAdapter(this)); 
gallery.setSelection(1); 
7

структуру, описывающую общую информацию о дисплее, например, его размер, плотность и шрифта scaling.To доступ членов DisplayMetrics, инициализировать объект как этот

 DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 

     Gallery g = (Gallery) findViewById(R.id.gallery); 

     // set gallery to left side 
     MarginLayoutParams mlp = (MarginLayoutParams) g.getLayoutParams(); 
     mlp.setMargins(-(metrics.widthPixels/2 + (imageWidth/2)), mlp.topMargin, 
        mlp.rightMargin, mlp.bottomMargin); 
Смежные вопросы