Android 图库视图:在视图中一次查看一张图片



有没有办法设置图库视图,以便一次只能查看一个图像?我创建了一个带有图像缩略图的图库视图。当用户单击图像时,我想启动一个新活动,该活动在新图库视图中显示实际选定的图像。现在,当用户滑动手指时,他可以看到后续图像。有没有办法实现这一目标?

您可以将"自定义适配器"用于带有图像视图的图库视图,并在getView(int position,View convertView,ViewGroup parent)方法中使用"match_parent"或"fill_parent"作为自定义适配器中图像视图的"LayoutParams"。

public View getView(int position, View convertView, ViewGroup parent) {
    imageView.setLayoutParams(...);

    return imageView;
}   

引用:
开发者.安卓
开发者.安卓
开发者.安卓

我遇到了同样的问题,我做了一个小技巧。在我的情况下,图像是静态的,所以我使用批量重命名对图像进行编号 0-100。对相应的缩略图做了同样的事情。我创建了两个活动,一个带有网格视图(您可以使用图库视图)来握住拇指,另一个带有图库视图,我为 gridview 设置了 onclicklistener 以获取单击的拇指的 id,并将其传递给具有图库视图的活动作为额外的意图。图库视图抓取 id 并跳转到具有给定 id 的图像。检查此内容

答案和本教程

在网上搜索时找到了另一种解决方案。更简单的解决方案是将 Gallery 类子类化,只需将 onFling 设置为始终返回 false。以下是对解决方案的引用:

如何将 Android 图库中的投掷限制为每次投掷一个物品?

以下是我基于用户"某人某处"和"vmihalca"输入的组合实现,如上述链接所示:

public class SlowGallery extends Gallery {
    public SlowGallery(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    public SlowGallery(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public SlowGallery(Context context) {
        super(context);
    }
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
         return false;
    }
}

相关内容

最新更新