依赖---------------------------------------------------------------------------------------------------compile 'com.android.support:recyclerview-v7:26.0.0-alpha1' compile 'com.android.support:design:26.0.0-alpha1' compile 'com.github.bumptech.glide:glide:3.7.0'compile 'com.youth.banner:banner:1.4.9'compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'compile 'com.squareup.okhttp:okhttp:2.4.0'compile 'com.squareup.okio:okio:1.5.0'compile 'com.google.code.gson:gson:2.8.2'
------------------------------tablayout-------------主界面-----------------------------------------------------public class Zhujiemian extends AppCompatActivity{ private String[] s; private TabLayout tl; private ViewPager vp; private List<Fragment> lists; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.zhujiemian); tl = (TabLayout) findViewById(R.id.tl); vp = (ViewPager) findViewById(R.id.vp); s = new String[]{"最新日报","专栏","热门","主题日报"}; fgzhuanlan zhuanlan = new fgzhuanlan(); fgremen remen = new fgremen();//创建的fragment fgribao ribao = new fgribao(); fgzhuti zhuti = new fgzhuti(); lists = new ArrayList<>(); lists.add(ribao); lists.add(zhuanlan); lists.add(remen); lists.add(zhuti); tl.setupWithViewPager(vp); vp.setAdapter(new Mypager(getSupportFragmentManager())); } class Mypager extends FragmentPagerAdapter { public Mypager(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return lists.get(position); } @Override public int getCount() { return lists.size(); } @Override public CharSequence getPageTitle(int position) { return s[position]; } } }--------------------------------------------Recyclerview----------------------------------------------import android.graphics.Bitmap; import android.media.Image; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.example.administrator.zhifubao.ImageLoaderBanner; import com.example.administrator.zhifubao.MainActivity; import com.example.administrator.zhifubao.R; import com.example.administrator.zhifubao.bean.Mybean; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.squareup.okhttp.Call; import com.squareup.okhttp.Callback; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import com.squareup.okhttp.Response; import com.youth.banner.Banner; import java.io.IOException; import java.util.ArrayList; import java.util.List; import static android.R.attr.type; import static android.R.id.list; import static com.example.administrator.zhifubao.R.id.ban; import static com.example.administrator.zhifubao.R.id.right; /** * Created by Administrator on 2017/10/25. */ public class fgribao extends Fragment { public final static int typ_1 = 0; public final static int typ_2 = 1; private Banner ban; private List<String> img; private RecyclerView rv; private List<Mybean.ApkBean> apk; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View inflate = inflater.inflate(R.layout.fgribao, null); rv = (RecyclerView) inflate.findViewById(R.id.rv); okhttps(); return inflate; } public void okhttps(){ OkHttpClient mOkHttpClient = new OkHttpClient(); //创建一个Request final Request request = new Request.Builder() .url("http://huixinguiyu.cn/Assets/js/data.js") .build(); //new call Call call = mOkHttpClient.newCall(request); //请求加入调度 call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(Response response) throws IOException { String htmlStr = response.body().string(); Gson gson = new Gson(); Mybean mybean = gson.fromJson(htmlStr, Mybean.class); apk = mybean.getApk(); img = new ArrayList<String>(); for (int i = 0; i< apk.size(); i++){ img.add(apk.get(i).getIconUrl()); } getActivity().runOnUiThread(new Runnable() { @Override public void run() { rv.setLayoutManager(new LinearLayoutManager(getActivity())); Ribaoadapter adapter = new Ribaoadapter(); rv.setAdapter(adapter); } }); } }); } class Ribaoadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType==typ_1){ View v1 = View.inflate(getActivity(),R.layout.mybanner,null); ViewHoudler1 vh1 = new ViewHoudler1(v1); return vh1; }else if(viewType==typ_2){ View v2 = View.inflate(getActivity(),R.layout.item2,null); ViewHoudler2 vh2 = new ViewHoudler2(v2); return vh2; } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { int type = getItemViewType(position); if (type == typ_1) {//如果是第一种情况显示banner轮播图 ban.setImageLoader(new ImageLoaderBanner()); ban.setImages(img); ban.start(); }else if(type==typ_2){ ((ViewHoudler2)holder).tv1.setText(apk.get(position).getName()); ((ViewHoudler2)holder).tv2.setText(apk.get(position).getFrom()); ((ViewHoudler2)holder).tv3.setText(apk.get(position).getCategoryName()); loderImage(apk.get(position).getIconUrl(),((ViewHoudler2)holder).iv); } } @Override public int getItemViewType(int position) { if(position==0){ return typ_1; }else { return typ_2; } } @Override public int getItemCount() { return 1+apk.size()-1; } class ViewHoudler2 extends RecyclerView.ViewHolder{ private final ImageView iv; private final TextView tv1; private final TextView tv2; private final TextView tv3; public ViewHoudler2(View itemView) { super(itemView); iv = (ImageView) itemView.findViewById(R.id.iv); tv1 = (TextView) itemView.findViewById(R.id.tv1); tv2 = (TextView) itemView.findViewById(R.id.tv2); tv3 = (TextView) itemView.findViewById(R.id.tv3); } } class ViewHoudler1 extends RecyclerView.ViewHolder { public ViewHoudler1(View itemView) { super(itemView); ban = itemView.findViewById(R.id.ban); } } public void loderImage(String url,ImageView imageView){ ImageLoaderConfiguration configuration = ImageLoaderConfiguration .createDefault(getActivity()); DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) //设置图片下载期间显示的图片 .showImageOnFail(R.mipmap.ic_launcher)// 设置图片uri有错误,解密的过程中发生错误显示的图片 .cacheInMemory(true)//设置下载的图片是否缓存到内存中 .cacheOnDisk(true)// 设置下载的图片是否缓存到SD卡中 .bitmapConfig(Bitmap.Config.RGB_565) .build(); ImageLoader instance = ImageLoader.getInstance(); instance.init(configuration); //通过单例的模式,拿到对象,设置我们自定义配置的ImageLoader的配置信息 instance.displayImage(url, imageView ,options); //compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' } } }--------------------------------------------------Banner-------------------------------------------------------
Recyclerview多条目+tablayout
最新推荐文章于 2024-05-14 09:33:25 发布