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