stub_image表示对recyclerview通用图像加载器 [英] stub_image showing on universal image loader in 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屋!