Android 滚动完成后,如何使GalleryView中的图像回到初始位置? 我会考虑一个简单的 GalelyVIEW/COD>,它由几个图像组成。我将从左向右滚动,反之亦然,然后离开。到目前为止(如下面2幅图像所示),画廊>代码>在视图中间停止,每当滚动完成时,从初始位置或从最终位置留下一些空间(在图像中标记为红色)。我关心的是,我希望我的库在滚动后获得初始位置或最终位置(取决于滚动)。我该怎么做 图像:

Android 滚动完成后,如何使GalleryView中的图像回到初始位置? 我会考虑一个简单的 GalelyVIEW/COD>,它由几个图像组成。我将从左向右滚动,反之亦然,然后离开。到目前为止(如下面2幅图像所示),画廊>代码>在视图中间停止,每当滚动完成时,从初始位置或从最终位置留下一些空间(在图像中标记为红色)。我关心的是,我希望我的库在滚动后获得初始位置或最终位置(取决于滚动)。我该怎么做 图像:,android,scroll,android-gallery,galleryview,Android,Scroll,Android Gallery,Galleryview,完成从左向右滚动时: 完成从右向左滚动时: MyGalleryView: public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); mAudio=(按钮)findViewById(R.id.button1); mVideo=(按钮)findviewbyd(R.id.button2); mImages=(按钮)findvi

完成从左向右滚动时:

完成从右向左滚动时:

My
GalleryView
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAudio=(按钮)findViewById(R.id.button1);
mVideo=(按钮)findviewbyd(R.id.button2);
mImages=(按钮)findviewbyd(R.id.button3);
mAudio.setOnClickListener(这个);
mVideo.setOnClickListener(这个);
mImages.setOnClickListener(this);
画廊ga=(画廊)findViewById(R.id.Gallery01);
galleryAdapter=新图像适配器(此);
galleryAdapter.SetResourceArray(图片);
ga.setAdapter(galleryAdapter);
imageView=(imageView)findViewById(R.id.ImageView01);
ga.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部位置、长arg3){
Toast.makeText(getBaseContext(),“您已选择图片”+(pos+1)+“画廊”,Toast.LENGTH\u SHORT)
.show();
如果(activeGallery==音频){
setImageResource(音频图片[pos]);
}else if(activeGallery==视频){
设置图像资源(视频图片[pos]);
}else if(activeGallery==图像){
setImageResource(image_pics[pos]);
}
}
});
}
@凌驾
公共void onClick(视图){
如果(视图==mAudio){
如果(galleryAdapter!=null){
galleryAdapter.SetResourceArray(音频图片);
galleryAdapter.notifyDataSetChanged();
activeGallery=音频;
}
}else if(视图==mVideo){
如果(galleryAdapter!=null){
activeGallery=视频;
galleryAdapter.SetResourceArray(视频图片);
galleryAdapter.notifyDataSetChanged();
}
}else if(视图==模拟图像){
如果(galleryAdapter!=null){
activeGallery=图像;
galleryAdapter.SetResourceArray(图片);
galleryAdapter.notifyDataSetChanged();
}
}
}
公共类ImageAdapter扩展了BaseAdapter{
私有上下文ctx;
int图像背景;
private int[]resourcerarray=null;
公共图像适配器(上下文c){
ctx=c;
TypedArray ta=获得的StyledAttributes(R.styleable.Gallery1);
imageBackground=ta.getResourceId(R.styleable.Gallery1\u android\u galleryItemBackground,1);
ta.recycle();
}
@凌驾
public int getCount(){
返回resourcesarray.length;
}
public int[]getResourceArray(){
返回资源数组;
}
public void setresourcerarray(int[]resourcerarray){
this.resourcerarray=resourcerarray;
}
@凌驾
公共对象getItem(int arg0){
返回arg0;
}
@凌驾
公共长getItemId(int arg0){
返回arg0;
}
@凌驾
公共视图getView(内部位置、视图arg1、视图组arg2){
ImageView iv=新的ImageView(ctx);
iv.setImageResource(资源阵列[位置]);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.设置布局参数(新画廊布局参数(150120));
iv.挫折背景资源(图像背景);
回报四;
}
}

简单地说,我希望这些图库视图具有弹性效果。

我只知道如何从左侧移除空间,图像将从左侧开始。 描述显示器一般信息的结构,如大小、密度和字体缩放。要访问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);

要删除这些空格吗?或者你想让画廊在你停止滚动后显示第一张图片?谢谢弗兰肯斯坦的宝贵评论。我想删除这些空格。看到这一点,我正在尝试使用这里给出的一种方法,你知道如何使用setSelection()吗?不太多…但当画廊在正中显示selecte时…您需要将选定图像设置为第二个第三个,因此第一个将位于最左侧..设置选择就是为了这个。。
    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);