studio library imageloader glide example developer android android-recyclerview universal-image-loader stubs

library - universal image loader android example



stub_image en el cargador de imágenes universal en recyclerview (1)

Lo mejor es colocar los íconos de la aplicación en las carpetas de mipmap (no en las carpetas dibujables) porque se usan en resoluciones diferentes a la densidad actual del dispositivo.

Referenciado en el artículo de Google BlogPost.

Las carpetas Mipmap son básicamente solo para los iconos de tu aplicación (ic_launcher.png) y para cualquier otro archivo dibujable (como selectores, formas dibujables, otros iconos, etc.) deben colocarse en las respectivas carpetas dibujables.

Implementé el cargador de imágenes universal para mostrar imágenes en recyclerview. mostrando stub_image. El código contiene un fragmento y su adaptador, funciona correctamente antes de agregar universal-image-loader.

Aquí está el código:

Fragmento.Clase

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