我正在使用这样的画廊
<Gallery
android:id="@+id/gallery1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:spacing="2dp" >
</Gallery>
但是当我运行代码时,我发现画廊从中间开始,我想从左边开始。我该怎么做才能帮助我。
答案 0 :(得分:7)
描述有关显示的一般信息的结构,例如其大小,密度和字体缩放。要访问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);
答案 1 :(得分:2)
只需将Gallery的选择设置为next,类似于该画廊的左侧位置。
Gallery mGallery= (Gallery) findViewById(R.id.gallery);
mGallery.setSelection(1);
然后继续你的正常工作:)
答案 2 :(得分:2)
您应该使用setSelection(1),但在setAdapter()之后放置它很重要。在另一种情况下,它不起作用。
Gallery gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new GalleryImageAdapter(this));
gallery.setSelection(1);
答案 3 :(得分:1)
您需要使用的是.setSelection而不是.setSelected,例如
Gallery gallery =(Gallery)findViewById(R.id.gallery);
gallery.setSelection(1);
答案 4 :(得分:0)
将Gallery的左边距设置为负整数(比如-80 dip)。要正确计算,您将在运行时检查屏幕宽度,然后给出您的项目(图像)宽度,您将执行以下操作:
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);
答案 5 :(得分:0)
试试这个会起作用.....
Gallery g=(Gallery)findViewById(R.id.gallery1);
MarginLayoutParams mlp=(MarginLayoutParams)g.getLayoutParams();
mlp.setMargins(-200, 0, 0, 0);