Android 在recyclerview中的通用映像加载程序上显示存根\ U映像

Android 在recyclerview中的通用映像加载程序上显示存根\ U映像,android,android-recyclerview,universal-image-loader,stubs,Android,Android Recyclerview,Universal Image Loader,Stubs,我已经实现了通用图像加载器,用于在recyclerview中显示图像。 它显示了一个新的图像。 代码包含一个片段和它的适配器,在我添加通用映像加载程序之前,它工作正常 代码如下: Fragment.Class public class FourthFragment extends Fragment { private DisplayImageOptions options; ImageLoader imageLoader; RecyclerView rv; Rec

我已经实现了通用图像加载器,用于在recyclerview中显示图像。 它显示了一个新的图像。 代码包含一个片段和它的适配器,在我添加通用映像加载程序之前,它工作正常

代码如下:

Fragment.Class

public class FourthFragment extends Fragment {
    private DisplayImageOptions options;
    ImageLoader imageLoader;
    RecyclerView rv;
    RecyclerView.LayoutManager mLayoutManager;
    RecyclerView.Adapter mAdapter;
    String[] str = {"one","two","three","four"};
    int[] img = {R.mipmap.rio_one,R.mipmap.rio_two,R.mipmap.rio_three,R.mipmap.rio_four};

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.view_pager_fourth_fragment, container, false);

        try {
            rv = (RecyclerView) v.findViewById(R.id.recycler_view);
            rv.setHasFixedSize(true);
            mLayoutManager = new LinearLayoutManager(getContext());
            rv.setLayoutManager(mLayoutManager);

        } catch (Exception e) {
            e.printStackTrace();
            Log.e("some error", "" + e);
        }

        mAdapter = new RecyclerView_Adapter(getActivity(), R.layout.view_pager_card_view,str,img);
        rv.setAdapter(mAdapter);

        return v;
    }
private class RecyclerView_Adapter extends RecyclerView.Adapter<RecyclerView_Adapter.DataHolder> {
    String [] result;
    Activity activity;
    int layoutResourceId;
    int[] imgs;

    public RecyclerView_Adapter(FragmentActivity activity, int layoutResourceId, String [] result, int[] img) {
        this.layoutResourceId=layoutResourceId;
        this.activity=activity;
        this.result=result;
        this.imgs=img;
    }

    public class DataHolder extends RecyclerView.ViewHolder{
        protected TextView tv1;
        protected ImageView iv1;
        public DataHolder(View v){
            super(v);

            tv1=(TextView)v.findViewById(R.id.textview1);
            iv1=(ImageView)v.findViewById(R.id.icon);

        }
    }

    @Override
    public DataHolder onCreateViewHolder(ViewGroup v, int i) {
        View item = LayoutInflater.from(v.getContext()).inflate(R.layout.view_pager_card_view, v, false);
        return new DataHolder(item);
    }

    @Override
    public void onBindViewHolder(DataHolder holder, int position) {

        ImageLoaderConfiguration configBuilder = new ImageLoaderConfiguration.Builder(getContext())
                .threadPriority(Thread.NORM_PRIORITY - 2)
                .denyCacheImageMultipleSizesInMemory()
                .build();

        imageLoader = ImageLoader.getInstance();
        imageLoader.init(configBuilder);
        options = new DisplayImageOptions.Builder()
                .showStubImage(R.mipmap.stub_image) // STUB_IMAGE SHOWING
                .showImageForEmptyUri(R.mipmap.image_for_empty_url)
                .cacheInMemory(true)
                .cacheOnDisc(true)
                .build();

        holder.tv1.setText(result[position]);
        imageLoader.displayImage("mipmap://" + imgs[position], holder.iv1, options);
    }

    @Override
    public int getItemCount() {
        Log.e("LIST SIZE", "" + result.length);
        return imgs.length;
    }

}
RecycleServiceAdapter.class

public class FourthFragment extends Fragment {
    private DisplayImageOptions options;
    ImageLoader imageLoader;
    RecyclerView rv;
    RecyclerView.LayoutManager mLayoutManager;
    RecyclerView.Adapter mAdapter;
    String[] str = {"one","two","three","four"};
    int[] img = {R.mipmap.rio_one,R.mipmap.rio_two,R.mipmap.rio_three,R.mipmap.rio_four};

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.view_pager_fourth_fragment, container, false);

        try {
            rv = (RecyclerView) v.findViewById(R.id.recycler_view);
            rv.setHasFixedSize(true);
            mLayoutManager = new LinearLayoutManager(getContext());
            rv.setLayoutManager(mLayoutManager);

        } catch (Exception e) {
            e.printStackTrace();
            Log.e("some error", "" + e);
        }

        mAdapter = new RecyclerView_Adapter(getActivity(), R.layout.view_pager_card_view,str,img);
        rv.setAdapter(mAdapter);

        return v;
    }
private class RecyclerView_Adapter extends RecyclerView.Adapter<RecyclerView_Adapter.DataHolder> {
    String [] result;
    Activity activity;
    int layoutResourceId;
    int[] imgs;

    public RecyclerView_Adapter(FragmentActivity activity, int layoutResourceId, String [] result, int[] img) {
        this.layoutResourceId=layoutResourceId;
        this.activity=activity;
        this.result=result;
        this.imgs=img;
    }

    public class DataHolder extends RecyclerView.ViewHolder{
        protected TextView tv1;
        protected ImageView iv1;
        public DataHolder(View v){
            super(v);

            tv1=(TextView)v.findViewById(R.id.textview1);
            iv1=(ImageView)v.findViewById(R.id.icon);

        }
    }

    @Override
    public DataHolder onCreateViewHolder(ViewGroup v, int i) {
        View item = LayoutInflater.from(v.getContext()).inflate(R.layout.view_pager_card_view, v, false);
        return new DataHolder(item);
    }

    @Override
    public void onBindViewHolder(DataHolder holder, int position) {

        ImageLoaderConfiguration configBuilder = new ImageLoaderConfiguration.Builder(getContext())
                .threadPriority(Thread.NORM_PRIORITY - 2)
                .denyCacheImageMultipleSizesInMemory()
                .build();

        imageLoader = ImageLoader.getInstance();
        imageLoader.init(configBuilder);
        options = new DisplayImageOptions.Builder()
                .showStubImage(R.mipmap.stub_image) // STUB_IMAGE SHOWING
                .showImageForEmptyUri(R.mipmap.image_for_empty_url)
                .cacheInMemory(true)
                .cacheOnDisc(true)
                .build();

        holder.tv1.setText(result[position]);
        imageLoader.displayImage("mipmap://" + imgs[position], holder.iv1, options);
    }

    @Override
    public int getItemCount() {
        Log.e("LIST SIZE", "" + result.length);
        return imgs.length;
    }

}
私有类RecyclerView\u适配器扩展了RecyclerView.Adapter{
字符串[]结果;
活动;
国际布局资源;
int[]imgs;
公共RecyclerView_适配器(FragmentActivity活动,int-layoutResourceId,String[]结果,int[]img){
this.layoutResourceId=layoutResourceId;
这个。活动=活动;
结果=结果;
这个。imgs=img;
}
公共类数据持有者扩展了RecyclerView.ViewHolder{
受保护的文本视图tv1;
受保护图像视图iv1;
公共数据持有者(视图五){
超级(五);
tv1=(TextView)v.findViewById(R.id.textview1);
iv1=(ImageView)v.findViewById(R.id.icon);
}
}
@凌驾
公共数据持有者onCreateViewHolder(视图组v,int i){
视图项=布局项flater.from(v.getContext())。充气(R.layout.View\u pager\u card\u View,v,false);
返回新的数据持有者(项目);
}
@凌驾
公共无效onBindViewHolder(数据持有人,内部位置){
ImageLoaderConfiguration configBuilder=新建ImageLoaderConfiguration.Builder(getContext())
.threadPriority(Thread.NORM_PRIORITY-2)
.DenycacheMageMultipleSizesInMemory()
.build();
imageLoader=imageLoader.getInstance();
init(configBuilder);
选项=新建DisplayImageOptions.Builder()
.showStubImage(R.mipmap.stub\u image)//显示stub\u图像
.showImageForEmptyUri(R.mipmap.image\u表示\u空\u url)
.cacheInMemory(真)
.cacheOnDisc(正确)
.build();
holder.tv1.setText(结果[位置]);
imageLoader.displayImage(“mipmap://”+imgs[position],holder.iv1,options);
}
@凌驾
public int getItemCount(){
Log.e(“列表大小”,“结果长度”);
返回imgs.length;
}
}
最好将应用程序图标放在mipmap文件夹中(而不是 可绘制-文件夹),因为它们的使用分辨率不同于 设备的电流密度

引用自谷歌博客


Mipmap文件夹基本上只用于应用程序图标(ic_launcher.png),任何其他可绘制文件(如选择器、形状可绘制文件、其他图标等)都应放在相应的可绘制文件夹中

如果我将image place mipmap更改为drawable,则代码工作正常。。这意味着我无法将这些图像放入mipmap文件夹中使用此代码。@DrashtiKapadia,如果这解决了您的问题。请务必通过单击投票下面的灰色
右按钮接受答案。我不能投票,没有足够的代表,它是14-@威普卢阿斯里酒店