Androidで横スクロールする画像を実装する方法は何ですか?

Androidで横スクロール画像を実現するには、RecyclerViewやViewPagerを使用することができます。

  1. リサイクラービューを利用する:

最初に、レイアウトファイルにRecyclerViewコンポーネントを追加してください。

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" />

その後、ActivityやFragmentでRecyclerViewを見つけ、LayoutManagerとAdapterを設定します。

RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
recyclerView.setAdapter(new ImageAdapter(imageList));

ImageAdapterは、データのバインドとビューの作成を行うカスタムのRecyclerView.Adapterの実装クラスです。

public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {
    private List<Drawable> imageList;

    public ImageAdapter(List<Drawable> imageList) {
        this.imageList = imageList;
    }

    @NonNull
    @Override
    public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image, parent, false);
        return new ImageViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ImageViewHolder holder, int position) {
        Drawable image = imageList.get(position);
        holder.imageView.setImageDrawable(image);
    }

    @Override
    public int getItemCount() {
        return imageList.size();
    }

    public static class ImageViewHolder extends RecyclerView.ViewHolder {
        ImageView imageView;

        public ImageViewHolder(@NonNull View itemView) {
            super(itemView);
            imageView = itemView.findViewById(R.id.imageView);
        }
    }
}

item_imageは、単一の画像ビューを表示するために使用されるカスタムのレイアウトファイルです。

  1. 「ViewPagerを使用する」

最初に、レイアウトファイルにViewPagerコンポーネントを追加してください。

<androidx.viewpager.widget.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

Then, in your Activity or Fragment, locate the ViewPager and set the PagerAdapter:
その後、ActivityやFragmentでViewPagerを見つけて、PagerAdapterを設定してください。

ViewPager viewPager = findViewById(R.id.viewPager);
viewPager.setAdapter(new ImagePagerAdapter(imageList));

その中で、ImagePagerAdapterはデータのバインドやビューの作成を行うカスタムPagerAdapter実装クラスです。

public class ImagePagerAdapter extends PagerAdapter {
    private List<Drawable> imageList;

    public ImagePagerAdapter(List<Drawable> imageList) {
        this.imageList = imageList;
    }

    @Override
    public int getCount() {
        return imageList.size();
    }

    @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(container.getContext());
        imageView.setImageDrawable(imageList.get(position));
        container.addView(imageView);
        return imageView;
    }

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

Androidで横スクロール画像を実現することができます。

bannerAds