Android 如何使用ImageView实现水平滚动

Android 如何使用ImageView实现水平滚动,android,android-scrollview,android-recyclerview,Android,Android Scrollview,Android Recyclerview,我想显示一组从网上下载的图像,并将其显示为底部水平缩略图视图的一部分,在水平滚动视图模式下,每当我拍照时,都需要将其添加到底部的图像列表中 要使用哪种类型的本机组件,我尝试了recycler视图和horizontalGridView(LeanBack V17 API,recycler视图的扩展),在这两种视图中,我都遇到了水平滚动问题,我无法解决 是否有其他替代本机API可用于实现图像的水平列表视图。是的,您可以使用带有属性的LinearLayout android:orientation=“h

我想显示一组从网上下载的图像,并将其显示为底部水平缩略图视图的一部分,在水平滚动视图模式下,每当我拍照时,都需要将其添加到底部的图像列表中

要使用哪种类型的本机组件,我尝试了recycler视图和horizontalGridView(LeanBack V17 API,recycler视图的扩展),在这两种视图中,我都遇到了水平滚动问题,我无法解决


是否有其他替代本机API可用于实现图像的水平列表视图。

是的,您可以使用带有属性的LinearLayout
android:orientation=“horizontal”

您还需要将此LinearLayout放入ScrollLayout,以便在其上滚动

下载图像后,您可以将其添加到LinearLayout内的ImageView中
 <android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:layout_height="match_parent"
    >

    </android.support.v7.widget.RecyclerView>
    Activity:

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

    Adapter:
    public class ImageListAdapter extends RecyclerView.Adapter<ImageListAdapter.ViewHolder> {


    private final LayoutInflater inflator;
    private Context context;
    private List<Integer> imageList = new ArrayList<>();

    public ImageListAdapter(Context context, List<Integer> imageList) {

        this.context = context;
        this.imageList = imageList;

        inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = inflator.inflate(R.layout.eventlistadapterdata, parent, false);

        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Integer image = imageList.get(position);

holder.view.setImageResource(image);
    }


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

    static class ViewHolder extends RecyclerView.ViewHolder {
      ImageView view;

        ViewHolder(ImageView view) {
            super(view);
            this.view = view;
        }
    }


}
活动: recyclerView=(recyclerView)findViewById(R.id.recyclerView); LinearLayoutManager=newlinearlayoutmanager(this,LinearLayoutManager.HORIZONTAL,false); recyclerView.setLayoutManager(管理器); adapter=新的EventListAdapter(此为imageList); recyclerView.setAdapter(适配器); 适配器: 公共类ImageListAdapter扩展了RecyclerView.Adapter{ 私人充气机; 私人语境; 私有列表imageList=新的ArrayList(); 公共ImageListAdapter(上下文上下文,列表imageList){ this.context=上下文; this.imageList=imageList; 充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务); } @凌驾 public ViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图=充气机。充气(R.layout.eventlistadapterdata,父项,false); 返回新的ViewHolder(视图); } @凌驾 公共无效onBindViewHolder(ViewHolder,int位置){ 整数图像=imageList.get(位置); holder.view.setImageResource(图像); } @凌驾 public int getItemCount(){ 返回imageList.size(); } 静态类ViewHolder扩展了RecyclerView.ViewHolder{ 图像视图; 视图支架(图像视图){ 超级(视图); this.view=视图; } } }
分享你的
Recyclerview
编码你的尝试。我已经在链接中发布了