gpt4 book ai didi

java - 在 picasso 和 viewpager 制作的 slider 图像中添加下一个、上一个按钮

转载 作者:行者123 更新时间:2023-12-02 03:57:52 25 4
gpt4 key购买 nike

我在 viewpager 和 picasso 的帮助下制作了一个图像 slider ,现在我想在图像上添加下一个、上一个按钮,我该怎么做?

我看到了不同的答案,但它们都显示错误

这是显示图像 slider 的主要 Activity :

public class MainActivity extends AppCompatActivity {
private int[] imageUrls = new int[]{
R.drawable.after_cookie,
R.drawable.before_cookie
};
private WebBackForwardList viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ViewPager viewPager = findViewById(R.id.view_pager);
ViewPageAdapter adapter = new ViewPageAdapter(this, imageUrls);
viewPager.setAdapter(adapter);

}
}

这是 ViewPageAdapter:

public class ViewPageAdapter extends PagerAdapter {

private Context context;
private int[] imageUrls;

ViewPageAdapter(Context context, int[] 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);
}
}

最佳答案

将此方法添加到您的代码中

private int getItem(int i) {
return viewPager.getCurrentItem() + i;
}

然后将其用于下一个按钮

Button NextButton = (Button)findViewById(R.id.button1);
yourButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View view) {
viewPager.setCurrentItem(getItem(+1), true); //getItem(+1) for next
}
});

并将其用于上一个按钮

 Button PreviousButton = (Button)findViewById(R.id.button2);
PreviousButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View view) {
viewPager.setCurrentItem(getItem(-1), true); //getItem(-1) for previous
}
});

它会工作得很好;)

关于java - 在 picasso 和 viewpager 制作的 slider 图像中添加下一个、上一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56749244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com