依赖:compile 'com.android.support:recyclerview-v7:21.0.+' compile 'com.youth.banner:banner:1.4.9' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' compile 'com.google.code.gson:gson:2.8.1' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.github.bumptech.glide:glide:3.7.0'
public class MyView extends View { private static final float RADIUS = 50F; private Paint mPaint; private PointF mPointF; public MyView(Context context, AttributeSet attrs) { super(context, attrs); init(); } //初始化画笔和坐标 private void init() { mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setColor(Color.BLUE); mPointF = new PointF(RADIUS, RADIUS); } @Override protected void onDraw(Canvas canvas) { drawCircle(canvas); } //绘制小球 private void drawCircle(Canvas canvas) { float x = mPointF.x; float y = mPointF.y; canvas.drawCircle(x, y, RADIUS, mPaint); } private void startAnimation() { PointF startPoint = new PointF(RADIUS, RADIUS); PointF endPoint = new PointF(getWidth() - RADIUS, getHeight() - RADIUS); ValueAnimator anim = ValueAnimator.ofObject(new PointFEvaluator(), startPoint, endPoint); anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { //坐标改变 进行图像重绘 public void onAnimationUpdate(ValueAnimator animation) { mPointF = (PointF) animation.getAnimatedValue(); invalidate(); } }); //背景色渐变动画 ObjectAnimator anim2 = ObjectAnimator.ofObject(mPaint, "color", new ArgbEvaluator(), Color.BLUE, Color.BLUE); AnimatorSet animSet = new AnimatorSet(); animSet.play(anim).with(anim2); animSet.setDuration(3000); animSet.start(); } @Override public void onWindowFocusChanged(boolean hasWindowFocus) { super.onWindowFocusChanged(hasWindowFocus); startAnimation(); }}
------------------------------------------------------------------------------------------------------------------------------
public class SplashActivity extends AppCompatActivity { private MyView myview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); myview = (MyView) findViewById(R.id.myview); new Thread(){ @Override public void run() { SystemClock.sleep(3000); startActivity(new Intent(SplashActivity.this,MainActivity.class)); finish(); } }.start(); } }===========================================================================public class MainActivity extends FragmentActivity { private RadioGroup rg; private ViewPager vp; private List<Fragment> list = new ArrayList<>(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rg = (RadioGroup) findViewById(R.id.rg); vp = (ViewPager) findViewById(R.id.viewpager); ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(this)); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { for (int i = 0; i < list.size(); i++) { RadioButton rb = (RadioButton) rg.getChildAt(i); if (rb.isChecked()) { rb.setTextColor(Color.RED); vp.setCurrentItem(i, false); } else { rb.setTextColor(Color.BLACK); } } } }); initData(); vp.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } }); } private void initData() { list.add(new FragmentOne()); list.add(new FragmentTwo()); list.add(new FragmentThree()); list.add(new FragmentFour()); vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } }); } }---------------------------------------------------------------------------------------------------------------------------public class FragmentOne extends Fragment { private Banner banner; private RecyclerView recyclerView; private List<ListBean.StoriesBean> list = new ArrayList<>(); private List<ListBean.TopStoriesBean> list2 = new ArrayList<>(); // private List<String> strList = new ArrayList<>(); private List<String> imgList = new ArrayList<>(); private String url = "http://news-at.zhihu.com/api/4/news/latest"; private Handler handler = new Handler(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getContext(), R.layout.frag_one, null); banner = (Banner) view.findViewById(R.id.mybanner); recyclerView = (RecyclerView) view.findViewById(R.id.myrecycleview); LinearLayoutManager linearmanager = new LinearLayoutManager(getContext()); recyclerView.setLayoutManager(linearmanager); // MyTask task = new MyTask(); // task.execute(url); initData(); return view; } private void initData() { OkHttpClient client = new OkHttpClient(); //网络请求,传入url地址 Request request = new Request.Builder().url(url).build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(Response response) throws IOException { if (response.body() != null && response.isSuccessful()) { //result就是返回的数据 String result = response.body().string(); ListBean bean = ListBean.objectFromData(result); list = bean.stories; list2 = bean.top_stories; for (int i = 0; i < list2.size(); i++) { imgList.add(list2.get(i).image); } // for (int i =0;i <list.size();i++){ // strList.add(list.get(i).images.get(i)); // } handler.post(new Runnable() { @Override public void run() { //配置recycleView适配器 recyclerView.setAdapter(new MyAdapter(list, getContext())); //初始化banner,设置图片集合,小圆点样式,轮播切换时间 banner.setImageLoader(new GlideImageLoader()); banner.setImages(imgList); banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);//小圆点样式 banner.setDelayTime(2000);//切换时间 banner.start(); } }); } } }); } //Banner使用Glide加载图片 public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } } }---------------------------------------------------------------------------------------------------------------------------------public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<ListBean.StoriesBean> list = new ArrayList<>(); // private List<String> strList = null; private Context context; private ImageLoader loader; public MyAdapter(List<ListBean.StoriesBean> list, Context context) { this.list = list; // this.strList = strList; this.context = context; loader = ImageLoader.getInstance(); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_list, parent, false); return new MyAdapter.ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.id.setText(list.get(position).id); holder.title.setText(list.get(position).title); // strList = list.get(position).images; // loader.displayImage(strList.get(position), holder.img); } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { public View view; public ImageView img; public TextView id, title; public ViewHolder(View view) { super(view); this.view = view; this.img = (ImageView) view.findViewById(R.id.item_list_img); this.id = (TextView) view.findViewById(R.id.item_list_id); this.title = (TextView) view.findViewById(R.id.item_list_title); } } }==========================================================================================================================================================public class MyAdapterGrid extends RecyclerView.Adapter<MyAdapterGrid.ViewHolder> { private List<MyBean.OthersBean> list = new ArrayList<>(); private Context context; private ImageLoader loader; public MyAdapterGrid(List<MyBean.OthersBean> list, Context context) { this.list = list; this.context = context; loader = ImageLoader.getInstance(); } //刷新方法 public void addItem(List<MyBean.OthersBean> newdatas) { newdatas.addAll(list); list.removeAll(list); list.addAll(newdatas); notifyDataSetChanged(); } //下拉加载数据 public void addMore(List<MyBean.OthersBean> newdatas) { list.addAll(newdatas); notifyDataSetChanged(); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_grid, parent, false); return new MyAdapterGrid.ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { holder.title.setText(list.get(position).description); String url = list.get(position).thumbnail; loader.displayImage(url, holder.img); } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { public View view; public ImageView img; public TextView title; public ViewHolder(View view) { super(view); this.view = view; this.img = (ImageView) view.findViewById(R.id.item_grid_img); this.title = (TextView) view.findViewById(R.id.item_grid_title); } } }public class FragmentFour extends Fragment { private RecyclerView recyclerView; private List<MyBean.OthersBean> list = new ArrayList<>(); private String url = "http://news-at.zhihu.com/api/4/themes"; private Handler handler = new Handler(); private SwipeRefreshLayout swipeRefreshLayout; private GridLayoutManager manager; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getContext(), R.layout.frag_four, null); recyclerView = (RecyclerView) view.findViewById(R.id.frag_four_recycleview); swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swiperefresh); manager = new GridLayoutManager(getContext(), 2); recyclerView.setLayoutManager(manager); //初始化数据 initData(); swipeRefreshLayout.setColorSchemeColors(Color.RED, Color.BLUE); swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { new MyAdapterGrid(list, getContext()).addItem(list); swipeRefreshLayout.setRefreshing(false); } },3000); } }); return view; } private void initData() { OkHttpClient client = new OkHttpClient(); //网络请求,传入url地址 Request request = new Request.Builder().url(url).build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { } @Override public void onResponse(Response response) throws IOException { if (response.body() != null && response.isSuccessful()) { //result就是返回的数据 String result = response.body().string(); MyBean bean = MyBean.objectFromData(result); list = bean.others; handler.post(new Runnable() { @Override public void run() { //配置recycleView适配器 recyclerView.setAdapter(new MyAdapterGrid(list, getContext())); } }); } } }); } }
OKHTTP,RecycleView,ImageLoader,Glide,自定义VIew
最新推荐文章于 2021-04-25 18:00:50 发布