Android图库水平滚动

发布于 2024-11-29 15:48:39 字数 669 浏览 1 评论 0原文

我有一个包含图像的画廊,当水平滚动时,会滚动多个图像而不是一个。

以下是我的代码的一部分:

public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;
    if (convertView == null) {
        view = inflater.inflate(resourceid, null);
    }
    synchronized (view) {
        TextView txtTitle = (TextView) view
                .findViewById(R.id.txtCaption);
        ImageList item = getItem(position);

        ImageView ivImage = (ImageView) view.findViewById(R.id.ivImage);
        ivImage.setScaleType(ScaleType.CENTER_INSIDE);
        
        try {
            ivImage.setImageBitmap(getBitmapFromAsset(item.imageUrl));
        }

I have a gallery with images and when scroll horizontally, multiple images are scrolled instead of one.

Below is part of my code:

public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;
    if (convertView == null) {
        view = inflater.inflate(resourceid, null);
    }
    synchronized (view) {
        TextView txtTitle = (TextView) view
                .findViewById(R.id.txtCaption);
        ImageList item = getItem(position);

        ImageView ivImage = (ImageView) view.findViewById(R.id.ivImage);
        ivImage.setScaleType(ScaleType.CENTER_INSIDE);
        
        try {
            ivImage.setImageBitmap(getBitmapFromAsset(item.imageUrl));
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赤濁 2024-12-06 15:48:39

这个解决方案效果很好。

PS:你需要扩展一个Gallery。

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    int kEvent =
            e1.getX() < e2.getX() ? KeyEvent.KEYCODE_DPAD_LEFT : KeyEvent.KEYCODE_DPAD_RIGHT;
    onKeyDown(kEvent, null);
    return true;
}

This solution works perfectly.

PS: You need to extends a Gallery.

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    int kEvent =
            e1.getX() < e2.getX() ? KeyEvent.KEYCODE_DPAD_LEFT : KeyEvent.KEYCODE_DPAD_RIGHT;
    onKeyDown(kEvent, null);
    return true;
}
老街孤人 2024-12-06 15:48:39

对于已创建自定义图库的用户,可以参考此处的示例

来减慢速度向下快速导航您的画廊尝试下面的代码

yourGallery.setCallbackDuringFling(false);

for that you have create custom gallery you can refer the example here

to slow down fast navigation of your gallery try below code

yourGallery.setCallbackDuringFling(false);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文