Để hiển thị một hình ảnh khác nhau trên mỗi trang chiếu, bạn sẽ cần phải thêm một số mã xác định hình ảnh chính xác cho mỗi p tuổi tác. Vì bạn chỉ đang cố gắng hiển thị một vài hình ảnh được xác định trước, tôi đoán rằng bạn đã tải hình ảnh vào thư mục có thể vẽ của dự án của bạn. Với giả định đó trong tâm trí, tôi sẽ hướng dẫn bạn qua các phần còn thiếu trong the example you're following.
Nếu bạn chưa làm như vậy, tạo lớp ScreenSlidePageFragment
của bạn, và thay đổi mã để tìm kiếm một cái gì đó như thế này:
public class ScreenSlidePageFragment extends Fragment {
private static final String ARG_RESOURCE_ID = "resource_id";
private int id; // resource id of the static image to display in this page
public ScreenSlidePageFragment() {
// Required empty public constructor
}
// Your program should call this to create each instance of this Fragment.
public static ScreenSlidePageFragment newInstance(int id) {
ScreenSlidePageFragment fragment = new ScreenSlidePageFragment();
Bundle args = new Bundle();
args.putInt(ARG_RESOURCE_ID, id);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
id = getArguments().getInt(ARG_RESOURCE_ID);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_screen_slide_page, container, false);
// assign our image's resource id here
ImageView imageView = (ImageView) view.findViewById(R.id.image);
imageView.setImageResource(id);
return view;
}
Bởi vì chúng tôi muốn mỗi đoạn để hiển thị một hình ảnh với một id nguồn khác nhau, Tôi đã thêm tham số (id
) mà bạn có thể chuyển đến đoạn khi bạn tạo.
Bây giờ, chúng tôi chỉ cần thực hiện một số thay đổi nhỏ đối với ScreenSlidePagerActivity
. Đầu tiên, thêm một mảng tĩnh có chứa các tài nguyên hình ảnh có thể vẽ được mà bạn muốn sử dụng. Nó sẽ giống như thế này:
private static final int[] IMAGES = {R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4};
Cuối cùng, sửa đổi PagerAdapter của bạn, do đó getCount
trả về kích thước của mảng của bạn, và getItem
nhìn lên id tài nguyên phù hợp với từng trang trước khi tạo đoạn của mỗi slide.
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if (position < IMAGES.length)
return ScreenSlidePageFragment.newInstance(IMAGES[position]);
else
return null;
}
@Override
public int getCount() {
return IMAGES.length;
}
}
Xin vui lòng gửi mã của bạn –
Cảm ơn tiền thưởng! Mã của tôi có giải quyết được sự cố của bạn không? Tôi có thể thêm nhiều chi tiết hơn nếu bạn vẫn gặp sự cố khi làm việc. –
Bạn được chào đón! Tôi chưa có thời gian để thực hiện nó. Tôi đã đưa tiền thưởng cho bạn bởi vì bạn dường như đặt nỗ lực nhiều nhất vào nó (và cũng có nhiều người vượt trội nhất). Tôi không thể hoàn thành dự án kịp thời vì những lý do khác, nhưng tôi sẽ thực hiện nó khi tôi có thể, và cho bạn biết nếu tôi gặp phải một vấn đề. Cảm ơn về lời đề nghị! – GregT