Сначала вы должны импортировать этот устрашающий библиотеку https://github.com/JakeWharton/ViewPagerIndicator
Следующие шаги очень просты я даю вам мой собственный рабочий код
вам просто нужно копировать вставить и заменить если верить тебе.
Первый экземпляр этого класса POJO
public class Banner {
private String str_id;
private String str_photo;
Banner() {
}
public Banner(String str_id, String str_photo) {
this.str_id = str_id;
this.str_photo = str_photo;
}
public String getStr_id() {
return str_id;
}
public void setStr_id(String str_id) {
this.str_id = str_id;
}
public String getStr_photo() {
return str_photo;
}
public void setStr_photo(String str_photo) {
this.str_photo = str_photo;
}
}
Сейчас этот адаптер:
public class SlidingImage_Adapter extends PagerAdapter {
private List<Banner> IMAGES = new ArrayList<Banner>();
private LayoutInflater inflater;
private Context context;
private Typeface typefaceReguler, typefaceLight, typefaceItalic;
public SlidingImage_Adapter(Context context, List<Banner> IMAGES) {
this.context = context;
this.IMAGES = IMAGES;
inflater = LayoutInflater.from(context);
System.out.println("----imagesssss----- "+IMAGES);
/* typefaceReguler = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Regular_0.ttf");
typefaceLight = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Light_0.ttf");
typefaceItalic = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Italic_0.ttf");*/
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return IMAGES.size();
}
@Override
public Object instantiateItem(ViewGroup view, int position) {
View imageLayout = inflater.inflate(R.layout.slidingimages_layout, view, false);
Banner banner = IMAGES.get(position);
assert imageLayout != null;
final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
final ImageView img_browse = (ImageView) imageLayout.findViewById(R.id.imageView_Browse);
final TextView textView = (TextView) imageLayout.findViewById(R.id.textView_collectiontitle);
// textView.setTypeface(typefaceReguler);
// textView.setTextSize(AppController.textSize(context, 30));
// textView.setTextColor(ContextCompat.getColor(context, R.color.white));
// int width = imageView.getLayoutParams().width = AppController.screenWidth(context)/1;
// int height = imageView.getLayoutParams().height = AppController.screenHeight(context)/3;
img_browse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Browse Collection", Toast.LENGTH_SHORT).show();
}
});
if (position == 0) {
textView.setText("woodland original");
}
if (position == 1) {
textView.setText("nike original");
}
if (position == 2) {
textView.setText("rebook original");
}
if (position == 3) {
textView.setText("adidas original");
}
if (!banner.getStr_photo().isEmpty())
{
System.out.println("---Working---- "+banner.getStr_photo());
Picasso.with(context)
.load("Your image here")
.placeholder(R.drawable.banner_shoe) // optional
.error(R.drawable.banner_shoe) // optional
.resize(250, 200) // optional
.rotate(90) // optional
.into(imageView);
}
view.addView(imageLayout, 0);
return imageLayout;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}
@Override
public Parcelable saveState() {
return null;
}
}
Теперь это основной вид деятельности
public class SlideAutomaticWithViewPager extends AppCompatActivity {
public List<Banner> list_banner = new ArrayList<Banner>();
private SlidingImage_Adapter slidingImage_adapter;
private static ViewPager mPager;
private static int NUM_PAGES = 0;
private static int currentPage = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.slide_automatic);
list_banner.add(new Banner("1", "Your image link here"));
list_banner.add(new Banner("2", "https://www.simplifiedcoding.net/wp-content/uploads/2015/10/advertise.png"));
list_banner.add(new Banner("3", "https://www.simplifiedcoding.net/wp-content/uploads/2015/10/advertise.png"));
list_banner.add(new Banner("4", "https://www.simplifiedcoding.net/wp-content/uploads/2015/10/advertise.png"));
mPager = (ViewPager) findViewById(R.id.viewpagerHome);
slidingImage_adapter = new SlidingImage_Adapter(this, list_banner);
mPager.setAdapter(slidingImage_adapter);
CirclePageIndicator indicator = (CirclePageIndicator) findViewById(R.id.indicator);
indicator.setViewPager(mPager);
final float density = getResources().getDisplayMetrics().density;
indicator.setRadius(5 * density);
NUM_PAGES = list_banner.size();
// Auto start of viewpager
final Handler handler = new Handler();
final Runnable Update = new Runnable() {
public void run() {
if (currentPage == NUM_PAGES) {
currentPage = 0;
}
mPager.setCurrentItem(currentPage++, true);
}
};
Timer swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(Update);
}
}, 3000, 3000);
// Pager listener over indicator
indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
currentPage = position;
}
@Override
public void onPageScrolled(int pos, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int pos) {
}
});
}
}
Вы можете попробовать этот код.
Привет датского, я ценю вашу готовность помочь. Но мой вопрос, если смотреть на него, ясно указывает, что мое требование - установить слайд-шоу изображений в качестве моих обоев устройства (домашний экран Android). Не мой экран приложения, а экран моего устройства. Незлая помощь. Спасибо заранее. –
хочу, чтобы кто-то знал, что у меня есть задача, и не могу найти один пример или учебник для обоев. Изменения :( – CJS