Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有pagerView的毕加索滑块。获取可绘制的本地图像。以及如何自动更改图像_Java_Android - Fatal编程技术网

Java 带有pagerView的毕加索滑块。获取可绘制的本地图像。以及如何自动更改图像

Java 带有pagerView的毕加索滑块。获取可绘制的本地图像。以及如何自动更改图像,java,android,Java,Android,我需要content_home.xml的滑块。我可以和毕加索合作。但是我想在@drawable/images中使用本地图像,并且当我想每隔5秒自动更改图像时 HomeActivity.java public class HomeActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { private String[] imageUrls = new S

我需要content_home.xml的滑块。我可以和毕加索合作。但是我想在@drawable/images中使用本地图像,并且当我想每隔5秒自动更改图像时

HomeActivity.java

public class HomeActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {


private String[] imageUrls = new String[]{
        "https://cdn.pixabay.com/photo/2016/11/11/23/34/cat-1817970_960_720.jpg", ---> i change these images @
        "https://cdn.pixabay.com/photo/2017/12/21/12/26/glowworm-3031704_960_720.jpg",
        "https://cdn.pixabay.com/photo/2017/12/24/09/09/road-3036620_960_720.jpg",
        "https://cdn.pixabay.com/photo/2017/11/07/00/07/fantasy-2925250_960_720.jpg",
        "https://cdn.pixabay.com/photo/2017/10/10/15/28/butterfly-2837589_960_720.jpg" 
--->我更改这些图像“@drawable/images…”(本地图像)

content_home.xml

 <android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="250dp"
    tools:context="com.codinginflow.picassoimagesliderexample.MainActivity">
</android.support.v4.view.ViewPager>

使用此代码,您就可以开始了

 Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (view_pager.getCurrentItem() == dotsCount - 1) {
                        page = 0;
                    }
                    view_pager.setCurrentItem(page++, true);
                }
            });
        }
    }, 500, 5000);

是否要在一段时间后自动更改滑块?是的示例:每5秒。请编辑旧问题,而不是发布新问题。编辑一些东西绝对没有什么丢脸的。你是完美的:)。我是一名新开发人员,这段代码运行成功。但是你能为我的学习解释一下这个代码吗:)当然。See timer是java中的一个类,它可以帮助您在一段时间后执行特定任务。timer类有一个scheduleAtFixedRate方法,它可以帮助您在特定的时间范围内重复执行任务。“视图寻呼机”有一个设置当前项的方法。根据页面位置,它将在分配给计时器任务的时间后自动更改页面,但此问题=1.5s后加载图像->2.5s后加载图像3.5s后加载图像其okey自动加载成功。现在显示最终图像。当完成这个过程。不返回到1.0图像。完成后不要自动加载问题是什么,伙计?我解释了一次这个问题25分钟:)
package com.example.hassucuk;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;
public class ViewPagerAdapter extends PagerAdapter {
    private Context context;
    private String[] imageUrls;

    ViewPagerAdapter(Context context, String[] imageUrls) {
        this.context = context;
        this.imageUrls = imageUrls;
    }

    @Override
    public int getCount() {
        return imageUrls.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view == object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        Picasso.get()
                .load(imageUrls[position])

                .fit()
                .centerCrop()
                .into(imageView);
        container.addView(imageView);

        return imageView;
    }


    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((View) object);
    }
}

 Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (view_pager.getCurrentItem() == dotsCount - 1) {
                        page = 0;
                    }
                    view_pager.setCurrentItem(page++, true);
                }
            });
        }
    }, 500, 5000);