Gallery view is not starting from left

巧了我就是萌 提交于 2019-12-10 17:46:41

问题


I am using Gallery like this

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

but when I am running the code I am finding gallery starting from middle and I want to start it from left. what should I do for this please help me.


回答1:


just set the selection of Gallery to next, which resemble that gallery is in Left position.

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

then continue with your normal work :)




回答2:


A structure describing general information about a display, such as its size, density, and font scaling.To access the DisplayMetrics members, initialize an object like this

        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);



回答3:


You should use setSelection(1) but it's important to place it after setAdapter(). In another case it doesn't work.

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



回答4:


What you need to use is .setSelection not .setSelected, example below

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

gallery.setSelection(1);




回答5:


Set left margin of the Gallery to the negative integer (say -80 dip). To properly calculate you would check for the screen width at the run time and then given your item (image) width you will do something like:

    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);



回答6:


Try this it will work.....

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

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

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



来源:https://stackoverflow.com/questions/10026845/gallery-view-is-not-starting-from-left

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!