带有内部存储映像的RecycleView

时间:2017-12-28 13:08:14

标签: java android

我正在制作使用集成摄像头的应用程序,将图像保存在内部存储中,然后它应该通过RecycleView以片段形式显示为连续3张图像。

此方法用于保存图像:

this.cheapestFruit.price = price;

我无法弄清楚如何制作一个可以做这种事情的适配器。

1 个答案:

答案 0 :(得分:0)

就适配器而言,试试这个适配器, 首先在创建它之前为它设置一个布局管理器,它会在一行中显示每3个图像:

RecyclerView.LayoutManager manager = new GridLayoutManager(context,3);
    RecyclerView recyclerView  = findViewById(R.id.recycler);
    recyclerView.setLayoutManager(manager);

而不是创建一个xml,以便稍后在适配器中对其进行充气,我们将其命名为inflation.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">


<ImageView
    android:id="@+id/image"
    android:layout_width="100dp"
    android:layout_height="100dp" />

而不是创建你的适配器:

public class Adapter extends RecyclerView.Adapter<Adapter.myViewHolder> {


        Context ctx;
        //this is your images

        List<Bitmap> myImages;

        Adapter(Context context, List<Bitmap> images) {

            this.ctx = context;
            this.myImages = images;
        }


        @Override
        public Adapter.myViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

            View view = getLayoutInflater().inflate(R.layout.inflation, parent, false);

            return new myViewHolder(view);
        }

        @Override
        public void onBindViewHolder(Adapter.myViewHolder holder, int position) {

                holder.image.setImageBitmap(myImages.get(position));
        }

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

        class myViewHolder extends RecyclerView.ViewHolder {

            ImageView image;



            public myViewHolder(View itemView) {
                super(itemView);

                image = itemView.findViewById(R.id.image);
            }


        }


    }

并将适配器设置为recyclerView

Adapter adapter = new Adapter(this, "//your data" )
recyclerView.setAdapter(adapter);
希望这会有所帮助。