【问题标题】:Next image not being displayed on swipe in 'ImageSwitcher'在“ImageSwitcher”中滑动时未显示下一张图片
【发布时间】:2017-08-25 10:22:32
【问题描述】:

我对 android 开发真的很陌生,我一直在尝试创建一个图片库应用程序。一切正常,除了当我滑动显示下一张或上一张图像时,什么都没有显示。我该如何解决这个问题?

public class PhotosActivity extends AppCompatActivity {
    int int_position;
    private GridView gridView;
    GridViewAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_gallery);
        gridView = (GridView)findViewById(R.id.gv_folder);
        int_position = getIntent().getIntExtra("value", 0);
        adapter = new GridViewAdapter(this, al_images,int_position);
        gridView.setAdapter(adapter);

        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String abc = "file://" + al_images.get(int_position).getAl_imagepath().get(position);

                Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
                i.putExtra("id", position);
                i.putExtra("abc",abc);
                startActivity(i);
            }
        });
    }
}

【问题讨论】:

    标签: java android android-imageview touch-event swipe-gesture


    【解决方案1】:

    当我运行你的代码时,我得到了 Nullpointerexeption。所以我用了

      try {
            Intent i = getIntent();
    
            // Selected image id
            position = i.getExtras().getInt("id");
            Bundle extras = getIntent().getExtras();
            String value = extras.getString("abc");
    
            Glide.with(FullImageActivity.this)
                    .load(value)
                    .listener(new RequestListener<String, GlideDrawable>() {
                        @Override
                        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                            return false; // important to return false so the error placeholder can be placed
                        }
    
                        @Override
                        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                            return false;
                        }
                    })
    
                    .into(images);
        } catch (NullPointerException n) {
            n.printStackTrace();
        }
    

    在 5 或 6 次滑动后,我可以查看图像。正如您所问的那样,您无法查看图像,所以问题是缩略图不存在。就像我的日志中每个不可查看的缩略图一样得到这个错误

    I/System.out: resolveUri failed on bad bitmap uri: content://media/external/images/thumbnails/11

    希望这可能会有所帮助。

    ps : 等待 toast 完成,然后再刷下一次清除。

    【讨论】:

    • 即使在 10 次滑动之后我仍然无法查看图像,我根据您的回答更新了我的代码,而且我之前没有遇到任何异常,还有其他 java 文件我也没有'不包括在这个问题中,因为对我不起作用的代码在这个活动中,我现在仍然包含了一个 java 文件并更新了我的问题。该活动负责显示缩略图
    • 您是否将此权限 包含到您的清单文件中。
    • ....我包括了以及所有这些权限
    • 好吧,当我运行此代码 Here 时我找不到问题,它运行良好。此外,如果您需要更多参考,可以访问 herehere
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    相关资源
    最近更新 更多