stub_image表示对recyclerview通用图像加载器 [英] stub_image showing on universal image loader in recyclerview

查看:136
本文介绍了stub_image表示对recyclerview通用图像加载器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经实现通用的图像加载器显示recyclerview图像。
它显示stub_image。
code包含一个碎片,它的适配器,它的正常工作之前,我加入通用的图像加载器。

下面是code:

Fragment.Class

 公共类FourthFragment扩展片段{
    私人DisplayImageOptions选择;
    ImageLoader的ImageLoader的;
    RecyclerView RV;
    RecyclerView.LayoutManager mLayoutManager;
    RecyclerView.Adapter mAdapter;
    的String []海峡= {一,二,三,四};
    INT [] = IMG {R.mipmap.rio_one,R.mipmap.rio_two,R.mipmap.rio_three,R.mipmap.rio_four};    @覆盖
    公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){
        视图V = inflater.inflate(R.layout.view_pager_fourth_fragment,集装箱,FALSE);        尝试{
            RV =(RecyclerView)v.findViewById(R.id.recycler_view);
            rv.setHasFixedSize(真);
            mLayoutManager =新LinearLayoutManager(的getContext());
            rv.setLayoutManager(mLayoutManager);        }赶上(例外五){
            e.printStackTrace();
            Log.e(一些错误,+ E);
        }        mAdapter =新RecyclerView_Adapter(getActivity(),R.layout.view_pager_card_view,STR,IMG);
        rv.setAdapter(mAdapter);        返回伏;
    }

RecyclerViewAdapter.class

 私有类RecyclerView_Adapter扩展RecyclerView.Adapter< RecyclerView_Adapter.DataHolder> {
    的String []的结果;
    活动活动;
    INT layoutResourceId;
    INT [] IMGS;    公共RecyclerView_Adapter(FragmentActivity活动,诠释layoutResourceId,字符串[]因此,INT [] IMG){
        this.layoutResourceId = layoutResourceId;
        this.activity =活动;
        this.result =结果;
        this.imgs = IMG;
    }    公共类DataHolder扩展RecyclerView.ViewHolder {
        保护的TextView TV1;
        保护ImageView的IV1;
        公共DataHolder(视图v){
            超级(五);            TV1 =(TextView中)v.findViewById(R.id.textview1);
            IV1 =(ImageView的)v.findViewById(R.id.icon);        }
    }    @覆盖
    公共DataHolder onCreateViewHolder(ViewGroup中V,int i)以{
        查看项目= LayoutInflater.from(v.getContext())膨胀(R.layout.view_pager_card_view,V,假的)。
        返回新DataHolder(项目);
    }    @覆盖
    公共无效onBindViewHolder(DataHolder持有人,INT位置){        ImageLoaderConfiguration configBuilder =新ImageLoaderConfiguration.Builder(的getContext())
                .threadPriority(Thread.NORM_PRIORITY - 2)
                .denyCacheImageMultipleSizesInMemory()
                。建立();        ImageLoader的= ImageLoader.getInstance();
        imageLoader.init(configBuilder);
        选项​​=新DisplayImageOptions.Builder()
                .showStubImage(R.mipmap.stub_image)// STUB_IMAGE SHOWING
                .showImageForEmptyUri(R.mipmap.image_for_empty_url)
                .cacheInMemory(真)
                .cacheOnDisc(真)
                。建立();        holder.tv1.setText(结果[位置]);
        imageLoader.displayImage(的mipmap://+ IMGS [位置],holder.iv1,期权);
    }    @覆盖
    公众诠释getItemCount(){
        Log.e(列表的大小,+ result.length);
        返回imgs.length;
    }}


解决方案

  

这是把你的应用程序图标的文件夹mipmap-最佳实践(而不是
  drawable-文件夹),因为它们是在从不同的分辨率用于
  该器件的电流密度。


从谷歌的博文的文章

MIP贴图文件夹的基本上是为您的应用程序图标只(ic_launcher.png)和其他可绘制文件(如选择,形状可绘制其它图标等),应放在各自绘制文件夹的。

I have implement universal image loader for showing images in recyclerview. it showing stub_image. Code contain One fragment and its adapter, its working properly before i added universal-image-loader.

Here is the code:

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;
    }

RecyclerViewAdapter.class

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;
    }

}

解决方案

It’s best practice to place your app icons in mipmap- folders (not the drawable- folders) because they are used at resolutions different from the device’s current density.

Referenced from Google BlogPost Article.

Mipmap folder's are basically for your app icons only (ic_launcher.png) and for any other drawable files (like selectors, shape drawables, other icons etc) should be put in respective drawable folder's.

这篇关于stub_image表示对recyclerview通用图像加载器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆