在特定时间停止for循环并在Glide中调整图像

时间:2018-10-14 08:29:09

标签: java android multithreading android-glide

我正在生成齐射请求,该请求从服务器获取图像并显示在Glide中。我使用for循环解析响应并在Glide中显示图像。我想显示一张图像,然后在5/10秒后我要用索引更改它。我面临的问题是,当for循环启动时,其显示图像位于最后一个索引上。 mu代码是:

StringRequest fetchingAddsForMainScreen= new StringRequest(URL, new Response.Listener<String>() {


        @Override
        public void onResponse(String response) {
            int counter=0;
            try {
                JSONObject object= new JSONObject(response);
                JSONArray jsonArray=object.getJSONArray("slots");
                for (int i=0;i<jsonArray.length();i++)
                {
                    JSONObject jsonObject=jsonArray.getJSONObject(i);
                    String packageFullName=jsonObject.getString("adurl");
                    System.out.println("Package Full Name is:"+packageFullName);
                    String packageName = packageFullName.substring(packageFullName.indexOf("?")+3, packageFullName.length() );
                    System.out.println("Package Name is:"+packageName);
Glide.with(getApplicationContext()).load(jsonObject.getString("imgurl")).into(iVAddOne);
counter++;
if (counter==1)
                            {
                                Toast.makeText(MainActivity.this, "one Time counter", Toast.LENGTH_SHORT).show();
                                //break;
                            }
                            else if (counter==2)
                            {
                                Toast.makeText(MainActivity.this, "Two Time counter", Toast.LENGTH_SHORT).show();
                            }
                            else
                            {
                                Toast.makeText(MainActivity.this, "many Time counter", Toast.LENGTH_SHORT).show();
                            }

我如何停止循环10秒钟并滑动图像以粘贴下一个索引。

2 个答案:

答案 0 :(得分:0)

简单的方法是在并行线程中运行for循环,并在每次迭代结束时调用sleep(5000)。

更复杂,更优雅,更适合android的解决方案是使用AlarmManager,以便您可以设置重复任务,该任务每5秒更改一次图像。

答案 1 :(得分:0)

可能会有所帮助。

VectorDrawableCompat vectorDrawableCompat = VectorDrawableCompat.create(typedArray.getResources(),iconResId, null);
vectorDrawableCompat.draw(canvas);

希望对您有帮助。