Java 在';图像切换器';

Java 在';图像切换器';,java,android,android-imageview,touch-event,swipe-gesture,Java,Android,Android Imageview,Touch Event,Swipe Gesture,我对安卓系统的开发非常陌生,我一直在尝试创建一个图像库应用程序。一切正常,但当我滑动以显示下一个或上一个图像时,没有显示任何内容。我该如何解决这个问题 public class PhotosActivity extends AppCompatActivity { int int_position; private GridView gridView; GridViewAdapter adapter; @Override protected void on

我对安卓系统的开发非常陌生,我一直在尝试创建一个图像库应用程序。一切正常,但当我滑动以显示下一个或上一个图像时,没有显示任何内容。我该如何解决这个问题

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);
            }
        });
    }
}
公共类PhotosActivity扩展了AppCompatActivity{
int_位置;
私有GridView GridView;
GridViewAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u image\u gallery);
gridView=(gridView)findViewById(R.id.gv_文件夹);
int_position=getIntent().getIntExtra(“值”,0);
adapter=新的GridViewAdapter(此,al_图像,int_位置);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串abc=“file://”+al_images.get(int_position.getAl_imagespath().get(position);
Intent i=新的Intent(getApplicationContext(),FullImageActivity.class);
i、 putExtra(“id”,位置);
i、 putExtra(“abc”,abc);
星触觉(i);
}
});
}
}

当我运行您的代码时,我在其中获得了NullPointerExection。所以我用

  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();
    }
试试看{
Intent i=getIntent();
//所选图像id
position=i.getExtras().getInt(“id”);
Bundle extras=getIntent().getExtras();
字符串值=extras.getString(“abc”);
使用(FullImageActivity.this)滑动
.负载(值)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、字符串模型、目标、布尔isFirstResource){
return false;//返回false以放置错误占位符很重要
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、字符串模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
返回false;
}
})
.进入(图像);
}捕获(NullPointerException n){
n、 printStackTrace();
}
在5次或6次扫描后,我可以查看图像。正如您所问的,您无法查看图像,因此问题是缩略图不存在。在我的日志中,对于每个不可查看的缩略图,我都会遇到此错误

I/System.out:resolveUri在错误的位图uri上失败:content://media/external/images/thumbnails/11

希望这能有所帮助


ps:等待toast完成,然后再进行下一次刷卡以获得许可。

当我运行您的代码时,我在其中获得了NullPointerExection。所以我用

  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();
    }
试试看{
Intent i=getIntent();
//所选图像id
position=i.getExtras().getInt(“id”);
Bundle extras=getIntent().getExtras();
字符串值=extras.getString(“abc”);
使用(FullImageActivity.this)滑动
.负载(值)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、字符串模型、目标、布尔isFirstResource){
return false;//返回false以放置错误占位符很重要
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、字符串模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
返回false;
}
})
.进入(图像);
}捕获(NullPointerException n){
n、 printStackTrace();
}
在5次或6次扫描后,我可以查看图像。正如您所问的,您无法查看图像,因此问题是缩略图不存在。在我的日志中,对于每个不可查看的缩略图,我都会遇到此错误

I/System.out:resolveUri在错误的位图uri上失败:content://media/external/images/thumbnails/11

希望这能有所帮助


ps:等待toast完成,然后再进行下一次刷卡以获得许可。

即使刷卡10次,我仍然无法查看图像,我根据您的回答更新了我的代码,而且之前也没有任何异常,还有其他java文件,我没有包括在这个问题中,因为不适合我的代码也在这个活动中,但我现在又包括了一个java文件,并更新了我的问题。此活动负责显示缩略图。如果您将此权限包括在清单文件中。。。。我把它和所有这些权限都包括进去了,当我运行这段代码时,我找不到问题,它运行得很好。另外,如果你想要更多的参考资料,你可以访问,我仍然无法查看图像,即使在刷了10次之后,我根据你的回答更新了我的代码,而且我以前没有收到任何异常,还有其他java文件,我没有包括在这个问题中,因为不适用于我的代码在这个活动中,不过,我现在又添加了一个java文件,并更新了我的问题。此活动负责显示缩略图。如果您将此权限包括在清单文件中。。。。我把它和所有这些权限都包括进去了,当我运行这段代码时,我找不到问题,它运行得很好。如果你想要更多的参考资料,你可以访问