compile 'com.android.support:design:25.3.1' compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.google.code.gson:gson:2.8.2'public class MainActivity extends AppCompatActivity { int count=3; private ImageView img; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); count--; if (count==0){ Intent intent=new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } sendEmptyMessageDelayed(0,1000); } }; private CustomView yuan; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); yuan = (CustomView) findViewById(R.id.yuan); ObjectAnimator.ofFloat(yuan, "translationX", 0, 500).setDuration(3000).start(); ObjectAnimator.ofFloat(yuan, "translationY", 0, 1000).setDuration(3000).start(); handler.sendEmptyMessage(0); }public CustomView(Context context) { super(context); } public CustomView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setTextSize(10); paint.setColor(Color.BLUE); canvas.drawCircle(60, 50, 50, paint); paint.setStyle(Style.STROKE); }public class Main2Activity extends AppCompatActivity { private TabLayout tab; private ViewPager vp; String[] strName=new String[]{"最新日报", "专栏", "热门", "主题日报"}; List<Fragment> flist=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); tab = (TabLayout) findViewById(R.id.tab); vp = (ViewPager) findViewById(R.id.vp); settab(); MyAdapter adapter=new MyAdapter(getSupportFragmentManager()); vp.setAdapter(adapter); tab.setupWithViewPager(vp); } private void settab() { for (int i=0;i<4;i++){ tab.addTab(tab.newTab().setText(strName[i])); } flist.add(new Fragment_one()); flist.add(new Fragment_two()); flist.add(new Fragment_three()); flist.add(new Fragment_four()); } class MyAdapter extends FragmentPagerAdapter { public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return flist.get(position); } @Override public int getCount() { return flist.size(); } @Override public CharSequence getPageTitle(int position) { return strName[position]; } }public class MyReAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ private Context context; private List<JBean.TopStoriesBean>list; private int currentItem = 10*1000; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); currentItem++; holder3.viewpager.setCurrentItem(currentItem); if (currentItem == 0){ currentItem = 10; }else { sendEmptyMessageDelayed(0,1000); } } }; private ViewHolder3 holder3; public MyReAdapter(Context context, List<JBean.TopStoriesBean> list) { this.context = context; this.list = list; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view=null; RecyclerView.ViewHolder holder=null; switch (viewType){ case 0: view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); holder=new ViewHolder(view); break; case 1: view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_item, parent, false); holder=new ViewHolder2(view); break; case 2: view = LayoutInflater.from(parent.getContext()).inflate(R.layout.vpitem, parent, false); holder=new ViewHolder3(view); break; } return holder; } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { switch (getItemViewType(position)){ case 0: ViewHolder holder1= (ViewHolder) holder; Glide.with(context).load(list.get(position).getImage()).into(holder1.img1); break; case 1: ViewHolder2 holder2= (ViewHolder2) holder; holder2.tv1.setText(list.get(position).getTitle()); holder2.tv2.setText(list.get(position).getId()+""); Glide.with(context).load(list.get(position).getImage()).into(holder2.img); break; case 2: holder3 = (ViewHolder3) holder; VpAdapter vpAdapter=new VpAdapter(context,list); holder3.viewpager.setAdapter(vpAdapter); ((ViewHolder3) holder).viewpager.setCurrentItem(currentItem); handler.sendEmptyMessage(0); holder3.viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { Log.e("**********",position+""); switch (position){ case 0: holder3.raidogroup.check(R.id.rb1); break; case 1: holder3.raidogroup.check(R.id.rb2); break; case 2: holder3.raidogroup.check(R.id.rb3); break; case 3: holder3.raidogroup.check(R.id.rb4); break; case 4: holder3.raidogroup.check(R.id.rb5); break; } } @Override public void onPageScrollStateChanged(int state) { } }); holder3.raidogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { switch (checkedId){ case R.id.rb1: holder3.viewpager.setCurrentItem(0); break; case R.id.rb2: holder3.viewpager.setCurrentItem(1); break; case R.id.rb3: holder3.viewpager.setCurrentItem(2); break; case R.id.rb4: holder3.viewpager.setCurrentItem(3); break; case R.id.rb5: holder3.viewpager.setCurrentItem(4); break; } } }); break; } } @Override public int getItemViewType(int position) { if (position == 0) { return 2; } if (position%2 == 1) { return 1; } return 0; } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ private final ImageView img1; public ViewHolder(View itemView) { super(itemView); img1 = (ImageView) itemView.findViewById(R.id.imageview); } } public class ViewHolder2 extends RecyclerView.ViewHolder{ private final ImageView img; private final TextView tv1; private final TextView tv2; public ViewHolder2(View itemView) { super(itemView); img = (ImageView) itemView.findViewById(R.id.img); tv1 = (TextView) itemView.findViewById(R.id.tv1); tv2= (TextView) itemView.findViewById(R.id.tv2); } } public class ViewHolder3 extends RecyclerView.ViewHolder{ private final ViewPager viewpager; private final RadioGroup raidogroup; private final RadioButton rb1; private final RadioButton rb2; private final RadioButton rb3; private final RadioButton rb4; private final RadioButton rb5; public ViewHolder3(View itemView) { super(itemView); viewpager = (ViewPager) itemView.findViewById(R.id.viewpager); raidogroup = (RadioGroup) itemView.findViewById(R.id.radiogroup); rb1 = (RadioButton) itemView.findViewById(R.id.rb1); rb2 = (RadioButton) itemView.findViewById(R.id.rb2); rb3 = (RadioButton) itemView.findViewById(R.id.rb3); rb4 = (RadioButton) itemView.findViewById(R.id.rb4); rb5 = (RadioButton) itemView.findViewById(R.id.rb5); } } }public class VpAdapter extends PagerAdapter { private Context context; private List<JBean.TopStoriesBean>list=new ArrayList<>(); public VpAdapter(Context context, List<JBean.TopStoriesBean> list) { this.context = context; this.list = list; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView=new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); String image = list.get(position%5).getImage(); Glide.with(context).load(image).into(imageView); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }public class Fragment_one extends Fragment { List<JBean.TopStoriesBean> top_stories; private View inflate; private RecyclerView recyclerView; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { inflate = inflater.inflate(R.layout.fragment,null); return inflate; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); View view = getView(); recyclerView = (RecyclerView) view.findViewById(R.id.re); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); // linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(linearLayoutManager); initData(); } private void initData() { OkHttpClient okHttpClient = MyApplivation.okHttpClient(); Request request = new Request.Builder().url("http://news-at.zhihu.com/api/4/news/latest").build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String json = response.body().string(); if (response.isSuccessful()) { Gson gson = new Gson(); JBean bean = gson.fromJson(json, JBean.class); top_stories = bean.getTop_stories(); getActivity().runOnUiThread(new Runnable() { @Override public void run() { MyReAdapter re = new MyReAdapter(getActivity(),top_stories); recyclerView.setAdapter(re); } }); } } }); } }<com.bawei.myapplicationlianxi.CustomView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/yuan" /><android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tab"></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/vp" ></android.support.v4.view.ViewPager><android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/viewpager" > </android.support.v4.view.ViewPager> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/radiogroup" android:gravity="center" > <RadioButton android:checked="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb1" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb2" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb3" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb4" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/rb5" /> </RadioGroup>
多条目展示
最新推荐文章于 2021-05-28 00:41:59 发布
本文介绍了一个安卓应用中使用的各种组件,包括图片加载库Glide、网络请求库OkHttp等,并展示了如何使用这些组件来实现流畅的动画效果,如自定义视图的绘制和属性动画的应用。
527

被折叠的 条评论
为什么被折叠?



