主要的思路:

第一、在主的activity中写DrawerLayout加Viewpager(vp)实现侧拉的功能

                                         写viewpager(vp1)加载四个Fragment

                            第二,在第一个Fragment中加载TabLayout与Viewpager实现导航栏的滑动

                                       写一个viewpager与一个下圆点的联动,在写个XListView实现解析后新闻条目的上拉加载,下拉刷新,gson的架包

      

                                       在适配器中判断子条目的不同布局,ImageLoader加载图片 (需要使用universal_Imager_Loader的架包)

//activty_main的布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/dl"android:layout_width="match_parent"android:layout_height="match_parent">
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><android.support.v4.view.ViewPagerandroid:layout_width="match_parent"android:layout_height="690dp"android:id="@+id/vp"android:layout_weight="2"/><RadioGroupandroid:layout_width="match_parent"android:layout_height="40dp"android:id="@+id/rg"android:layout_weight="8"android:orientation="horizontal"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/rb1"android:text="新闻"android:layout_margin="15dp"android:textSize="20sp"android:button="@null"android:layout_gravity="center"android:gravity="center"android:checked="true"android:layout_weight="1"android:background="@drawable/se"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/rb2"android:text="关注"android:layout_margin="15dp"android:textSize="20sp"android:button="@null"android:layout_gravity="center"android:gravity="center"android:layout_weight="1"android:background="@drawable/se"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/rb3"android:text="动态"android:layout_margin="15dp"android:textSize="20sp"android:button="@null"android:layout_gravity="center"android:gravity="center"android:layout_weight="1"android:background="@drawable/se"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:id="@+id/rb4"android:text="设置"android:layout_margin="15dp"android:textSize="20sp"android:button="@null"android:layout_gravity="center"android:gravity="center"android:background="@drawable/se"/></RadioGroup>
</LinearLayout><ListViewandroid:layout_width="200dp"android:layout_height="match_parent"android:id="@+id/lv"android:background="#fff"android:entries="@array/news"android:layout_gravity="left"></ListView>
</android.support.v4.widget.DrawerLayout>

//MainActivit

//在drawale包下创建selector.xml的文件控件按钮被选中的颜色

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@color/colorPrimary"/>
</selector>

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.RadioGroup;import com.example.shenxuesong.jinritoutiao.Adapter.MyAdapter;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment01;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment02;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment03;
import com.example.shenxuesong.jinritoutiao.Fragment.Fragment04;import java.util.ArrayList;
import java.util.List;public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener{private ViewPager vp;private RadioGroup rg;private List<Fragment>list=new ArrayList<Fragment>();private ListView lv;private DrawerLayout dl;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//查找组件vp=(ViewPager)findViewById(R.id.vp);rg=(RadioGroup)findViewById(R.id.rg);lv=(ListView)findViewById(R.id.lv) ;dl=(DrawerLayout)findViewById(R.id.dl);//造数据list.add(new Fragment01());list.add(new Fragment02());list.add(new Fragment03());list.add(new Fragment04());//设置适配器MyAdapter myAdapter = new MyAdapter(getSupportFragmentManager(),list);vp.setAdapter(myAdapter);//实现侧拉的功能init();//设置viewpager的监听事件,使vp与rg有联动效果vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {switch (position){case 0:rg.check(R.id.rb1);break;case 1:rg.check(R.id.rb2);break;case 2:rg.check(R.id.rb3);break;case 3:rg.check(R.id.rb4);break;}}@Overridepublic void onPageScrollStateChanged(int state) {}});rg.setOnCheckedChangeListener(this);}@Overridepublic void onCheckedChanged(RadioGroup radioGroup, int i) {switch (i) {case R.id.rb1:vp.setCurrentItem(0);break;case R.id.rb2:vp.setCurrentItem(1);break;case R.id.rb3:vp.setCurrentItem(2);break;case R.id.rb4:vp.setCurrentItem(3);break;}}private void init() { //打开侧拉dl.openDrawer(lv);lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {}});}}

//给viewpager写适配器

public class MyAdapter extends FragmentPagerAdapter {private List<Fragment> list;public MyAdapter(FragmentManager fm, List<Fragment> list) {super(fm);this.list = list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Fragment getItem(int position) {return list.get(position);}}

//写四个Fragment的类和布局

主要的操作都在Fragment01中下面就着重对其进行展示(TabLayout与ViewPagerj结合使用,实现导航菜单的滑动功能)

fragment01的布局 TabLayout需要导包design

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/dl"><!--实现导航栏的滑动功能--><android.support.design.widget.TabLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/table"app:tabGravity="center"app:tabIndicatorColor="#f00"app:tabMode="scrollable"android:background="#22f"app:tabSelectedTextColor="#ff0000"app:tabTextColor="#fff"></android.support.design.widget.TabLayout><android.support.v4.view.ViewPagerandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/pager"/></LinearLayout>


//Fragment01实现航栏的滑动功能

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;import com.example.shenxuesong.jinritoutiao.R;import java.util.ArrayList;
import java.util.List;public class Fragment01 extends Fragment  {private TabLayout tab;private ViewPager vp1;private List<String> list=new ArrayList<String>();//收集标题@Overridepublic View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment01, container,false);//查找控件tab = (TabLayout) view.findViewById(R.id.table);vp1 = (ViewPager) view.findViewById(R.id.pager);//tab的标题list.add("头条");list.add("社会");list.add("国内");list.add("国际");list.add("娱乐");list.add("体育");list.add("军事");list.add("科技");list.add("财经");list.add("时尚");//tablayout和viewpager关联tab.setupWithViewPager(vp1);//设置viewpager适配器vp1.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {@Overridepublic CharSequence getPageTitle(int position) {return list.get(position);}@Overridepublic Fragment getItem(int position) {//实例化一个Fragment加载XlistviewNewFragment  newfragment = new NewFragment();Bundle bundle = new Bundle();if(list.get(position).equals("头条")){bundle.putString("name","top");}elseif(list.get(position).equals("社会")){bundle.putString("name","shehui");}elseif(list.get(position).equals("国内")){bundle.putString("name","guonei");}elseif(list.get(position).equals("国际")){bundle.putString("name","guoji");}elseif(list.get(position).equals("娱乐")){bundle.putString("name","yule");}elseif(list.get(position).equals("财经")){bundle.putString("name","caijing");}elseif(list.get(position).equals("军事")){bundle.putString("name","junshi");}elseif(list.get(position).equals("科技")){bundle.putString("name","keji");}elseif(list.get(position).equals("体育")){bundle.putString("name","tiyu");}elseif(list.get(position).equals("时尚")){bundle.putString("name","shishang");}//activity与fragment 1.getset,2.接口回调,3.setArguments ,getAragumentsnewfragment.setArguments(bundle);//相当于加载了一个Fragmentreturn newfragment;}@Overridepublic int getCount() {return list.size();}});return view;}}

//NewFragment实现了所有新闻的展示,它是替换了Fragment01,

在此类中会运用到网络请解析json数据、XListview、ImageLoader等知识点

//XListView的依赖包(配置下面的两句依赖就可以实现XListView )

maven{url'https://jitpack.io'}

compile 'com.github.ForgiveAll:Xlistview:v1.0'

newFragment的布局


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><!--蓝色部分实现是自动轮播的图片、图片上的标题、小圆点--><android.support.v4.view.ViewPagerandroid:layout_width="wrap_content"android:layout_height="200dp"android:id="@+id/vp"android:layout_marginTop="10dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/tv"android:layout_marginTop="-40dp"android:layout_marginLeft="20dp"android:textColor="#22f"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="40dp"android:gravity="center"android:id="@+id/ll"android:orientation="horizontal"android:layout_marginTop="-35dp"></LinearLayout><!--实现是展示的是上拉加载,下拉刷新--><me.maxwin.view.XListViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/list"></me.maxwin.view.XListView></LinearLayout>

//圆点的视图布局(item.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent">
<Viewandroid:layout_width="8dp"android:layout_height="8dp"android:layout_margin="10dp"android:id="@+id/view"android:background="@drawable/shape1"/>
</LinearLayout>

//在drawable的视图下面创建shape.xml、shape1.xml控制圆点的颜色

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"><solid android:color="#80000000"/><corners android:radius="8dp"/></shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#f00"/><corners android:radius="8dp"/>
</shape>
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;import com.example.shenxuesong.jinritoutiao.Adapter.Myadpader1;
import com.example.shenxuesong.jinritoutiao.JavaBean;
import com.example.shenxuesong.jinritoutiao.R;
import com.example.shenxuesong.jinritoutiao.User;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageSize;import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;import me.maxwin.view.XListView;public class NewFragment extends Fragment implements XListView.IXListViewListener{private List<User.ResultBean.DataBean> data;private  Myadpader1 myadpader;private ViewPager vp;private TextView tv;private LinearLayout ll;private XListView list;private static final String surl="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=6&page=1";private List<JavaBean.NewslistBean> newslist;private List<View> dolist=new ArrayList<View>();private List<String> str=new ArrayList<String>();private List<ImageView> imagelist=new ArrayList<ImageView>();private int current=0;private int old_list=0;private  String string;private Handler h=new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if(msg.what==1){int i=msg.arg1;//设置viewpager当前的播放位置vp.setCurrentItem(i);//设置当前的标题对应的图片tv.setText(str.get(i%imagelist.size()));//设置圆点当然播放对应的图片的颜色的变化dolist.get(old_list).setBackgroundResource(R.drawable.shape);dolist.get(i%imagelist.size()).setBackgroundResource(R.drawable.shape1);old_list=i%imagelist.size();}}};
@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {//找到布局文件View v = View.inflate(getActivity(), R.layout.listview, null);//ListView控件list = (XListView)v.findViewById(R.id.list);vp= (ViewPager) v.findViewById(R.id.vp);tv=(TextView)v.findViewById(R.id.tv) ;ll=(LinearLayout)v.findViewById(R.id.ll);//设置打开上拉下拉的开关list.setPullLoadEnable(true);//设置list.setXListViewListener(this);return v;}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);Bundle bundle = getArguments();//接收传递过来的值string = bundle.getString("name");//调用解析方法Jiexi(string);//获取图片的路径及biatigetPricUrLandTitle();}//解析方法private void Jiexi(final String string) {//使用异步new AsyncTask<String,Integer,String>(){@Overrideprotected String doInBackground(String... strings) {String str="";try {URL url = new URL("http://v.juhe.cn/toutiao/index?type=" + string + "&key=597b4f9dcb50e051fd725a9ec54d6653");HttpURLConnection conne= (HttpURLConnection) url.openConnection();conne.setConnectTimeout(5000);conne.setReadTimeout(5000);int responseCode = conne.getResponseCode();if (responseCode==200){InputStream in = conne.getInputStream();byte[] by=new byte[1024];int len=0;while ((len=in.read(by))!=-1){str+=new String(by,0,len);}}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return str;}@Overrideprotected void onPostExecute(String s) {super.onPostExecute(s);//Gson解析Gson gson = new Gson();User user = gson.fromJson(s, User.class);data = user.getResult().getData();//listview适配器myadpader = new Myadpader1(data, getActivity());list.setAdapter(myadpader);}}.execute();}
     //获取图片的路径及biati
 private void getPricUrLandTitle() { //异步任务

new AsyncTask<String,Integer,String>(){
@Override protected String doInBackground(String... strings) {
String str="";
try {
URL url = new URL(surl);
HttpURLConnection http=(HttpURLConnection) url.openConnection();
int code = http.getResponseCode();
if(code==200){
InputStream in = http.getInputStream();
byte[] b=new byte[1024];
int len=0;
while((len=in.read(b))!=-1){
str+=new String(b,0,len);
}
}
} catch (MalformedURLException e)
{ e.printStackTrace(); }
catch (IOException e)
{ e.printStackTrace(); }
return str;
}
@Override protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
newslist = gson.fromJson(s, JavaBean.class).getNewslist();
for (int i=0;i<newslist.size();i++){
JavaBean.NewslistBean newslistBean = newslist.get(i);
String picUrl = newslistBean.getPicUrl();
String title = newslistBean.getTitle();
Log.i("TAG",picUrl);
//获取网络请求的图片数据,并把它添加到imagelist中
getImageView(picUrl);
//得到圆点
getYuanDian();
//标题
str.add(title);
}
//执行的方法
init();
}
}.execute();
}
private void getImageView(String picUrl) {
ImageView imageView = new ImageView(getActivity());
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageSize size=new ImageSize(200,100);
ImageLoader.getInstance().displayImage(picUrl,imageView,size);
imagelist.add(imageView); }
private void getYuanDian() {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.item, null);
View view1 = view.findViewById(R.id.view);
//将试图添加到收集圆点的集合中
dolist.add(view1);
//将圆点的视图加载在Linearlayout的占位上
ll.addView(view);
}
private void init() {
//设置适配器
vp.setAdapter(new PagerAdapter() {
@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) {

View imageView = imagelist.get(position % imagelist.size());
container.addView(imageView); return imageView; } 

@Override 

public void destroyItem(ViewGroup container, int position, Object object) { 

container.removeView((View) object);
}
});
//设置圆点的第一个被选中
dolist.get(0).setBackgroundResource(R.drawable.shape1);
//设置viewpager的当前位置
vp.setCurrentItem(50000000);
//启动定时器
Timer timer = new Timer();
timer.schedule(new TimerTask() { 

@Override

public void run() { 

current=vp.getCurrentItem()+1;
Message msg = Message.obtain();
msg.arg1=current;
msg.what=1;
h.sendMessage(msg); 

}
}, 3000, 2000); }
@Override 

public void onRefresh() { 

Jiexi(surl);
stopLoad();
} 

@Override

public void onLoadMore() {

//使用异步进行网络请求数据
new AsyncTask<String,Integer,String>(){ 

@Override 

protected String doInBackground(String... strings) { 

String str="";
try {
URL url = new URL("http://v.juhe.cn/toutiao/index?type=" + string + "&key=597b4f9dcb50e051fd725a9ec54d6653");

HttpURLConnection conne= (HttpURLConnection) url.openConnection(); 

conne.setConnectTimeout(5000);

conne.setReadTimeout(5000); 

int responseCode = conne.getResponseCode();

if (responseCode==200){ 

InputStream in = conne.getInputStream();
byte[] by=new byte[1024];
int len=0;
while ((len=in.read(by))!=-1){ 

str+=new String(by,0,len); 

}
}
} catch (MalformedURLException e)
{ e.printStackTrace(); }
catch (IOException e)
{ e.printStackTrace(); }
return str;
}

@Override

protected void onPostExecute(String s) { 

super.onPostExecute(s); 

//Gson解析
Gson gson = new Gson(); 

User user = gson.fromJson(s, User.class); 

List<User.ResultBean.DataBean> data1 = user.getResult().getData(); data.addAll(data1);

//listview适配器 

myadpader.notifyDataSetChanged();
        stopLoad(); 
}
}.execute(); 

} 

public void stopLoad(){
list.stopRefresh();
list.stopLoadMore();
list.setRefreshTime("刚刚");
}
}
//Xlistview写适配器
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.example.shenxuesong.jinritoutiao.R;
import com.example.shenxuesong.jinritoutiao.User;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageSize;import java.util.ArrayList;
import java.util.List;public class Myadpader1 extends BaseAdapter {private List<User.ResultBean.DataBean> data=new ArrayList<User.ResultBean.DataBean>();private Context context;public Myadpader1(List<User.ResultBean.DataBean> data, Context context) {this.data = data;this.context = context;}@Overridepublic int getCount() {return data.size();}@Overridepublic Object getItem(int i) {return null;}@Overridepublic long getItemId(int i) {return 0;}//判断子条目的布局@Overridepublic int getItemViewType(int position) {int re=0;if(data.get(position).getThumbnail_pic_s()!=null&&data.get(position).getThumbnail_pic_s02()!=null&&data.get(position).getThumbnail_pic_s03()!=null){re=0;}else if(data.get(position).getThumbnail_pic_s()!=null&&data.get(position).getThumbnail_pic_s02()!=null&&data.get(position).getThumbnail_pic_s03()==null){re=1;}else if(data.get(position).getThumbnail_pic_s()!=null&&data.get(position).getThumbnail_pic_s02()==null&&data.get(position).getThumbnail_pic_s03()==null){re=2;}return re;}//子条目布局的数量@Overridepublic int getViewTypeCount() {return 3;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {//Xlistview的优化ViewHolder1 holder1=null;ViewHolder2 holder2=null;ViewHolder3 holder3=null;int re = getItemViewType(i);if(re==0){if(view==null){view=View.inflate(context,R.layout.item1,null);holder1=new ViewHolder1();holder1.tv=(TextView) view.findViewById(R.id.tv);holder1.image1=(ImageView)view.findViewById(R.id.image1);holder1.image2=(ImageView)view.findViewById(R.id.image2);holder1.image3=(ImageView)view.findViewById(R.id.image3);view.setTag(holder1);}else{holder1= (ViewHolder1) view.getTag();}holder1.tv.setText(data.get(i).getTitle()+"\n"+data.get(i).getAuthor_name()+"\n"+data.get(i).getDate());String thumbnail_pic_s = data.get(i).getThumbnail_pic_s();String thumbnail_pic_s02 = data.get(i).getThumbnail_pic_s02();String thumbnail_pic_s03 = data.get(i).getThumbnail_pic_s03();ImageSize size=new ImageSize(100,100);ImageLoader.getInstance().displayImage(thumbnail_pic_s,holder1.image1,size);ImageLoader.getInstance().displayImage(thumbnail_pic_s02,holder1.image2,size);ImageLoader.getInstance().displayImage(thumbnail_pic_s03,holder1.image3,size);}else if(re==1){if(view==null){view=View.inflate(context,R.layout.item2,null);holder2=new ViewHolder2();holder2.tv=(TextView) view.findViewById(R.id.tv);holder2.image1=(ImageView)view.findViewById(R.id.image1);holder2.image2=(ImageView)view.findViewById(R.id.image2);view.setTag(holder2);}else{holder2= (ViewHolder2) view.getTag();}holder2.tv.setText(data.get(i).getTitle()+"\n"+data.get(i).getAuthor_name()+"\n"+data.get(i).getDate());String thumbnail_pic_s = data.get(i).getThumbnail_pic_s();String thumbnail_pic_s02 = data.get(i).getThumbnail_pic_s02();ImageSize size=new ImageSize(100,100);ImageLoader.getInstance().displayImage(thumbnail_pic_s,holder2.image1,size);ImageLoader.getInstance().displayImage(thumbnail_pic_s02,holder2.image2,size);}else if(re==2){if(view==null){view=View.inflate(context, R.layout.item3,null);holder3=new ViewHolder3();holder3.tv=(TextView) view.findViewById(R.id.tv);holder3.image1=(ImageView)view.findViewById(R.id.image1);view.setTag(holder3);}else{holder3= (ViewHolder3) view.getTag();}holder3.tv.setText(data.get(i).getTitle()+"\n"+data.get(i).getAuthor_name()+"\n"+data.get(i).getDate());String thumbnail_pic_s = data.get(i).getThumbnail_pic_s();;ImageSize size=new ImageSize(100,100);//ImagerLoader加载图片ImageLoader.getInstance().displayImage(thumbnail_pic_s,holder3.image1,size);}return view;}class ViewHolder3{TextView tv;ImageView image1;}class ViewHolder2{TextView tv;ImageView image1;ImageView image2;}class ViewHolder1{TextView tv;ImageView image1;ImageView image2;ImageView image3;}
}
写子条目的布局(item1.xml,item2.xml,item3.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent">
<TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/tv"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/image1"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/image2"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/image3"/></LinearLayout></LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/tv"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/image1"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/image2"/></LinearLayout>
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/tv"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/image1"/></LinearLayout>
//网络图片的加载
import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();ImageLoaderConfiguration con=new ImageLoaderConfiguration.Builder(this).build();ImageLoader.getInstance().init(con);}
}
//最后AndroidMainfest.xml的权限的配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.shenxuesong.pulltorerfuer">
<uses-permission android:name="android.permission.INTERNET"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher" android:name=".MyApplication"android:label="@string/app_name"android:supportsRtl="true"  android:theme="@style/Theme.AppCompat.Light"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

												

安卓今日头条的框架的搭建相关推荐

  1. java搭建安卓服务器_无框架完整搭建安卓app及其服务端(一)

    技术背景: 我的一个项目做的的是图片处理,用 python 实现图片处理的核心功能后,想部署到安卓app中,但是对于一个对安卓和服务器都一知半解的小白来说要现学的东西太多了. 而实际上,我们的项目要求 ...

  2. 青龙-今日头条极速版更新

    更新了拉取地址,部分任务异常需要自行抓取自己账号的链接替换 小毛毛--今日头条极速版 建议一个IP不要跑太多,容易封 此脚本功能 IOS/安卓: 今日头条极速版 老用户每天几毛,新用户可能收益高点 普 ...

  3. 青龙面板----今日头条脚本修复版

    安卓: 今日头条极速版 老用户每天几毛,新用户可能收益高点 普通版定时: 1-59/15 6-23 * * * 激进版定时: 1-59/5 * * * * 多用户跑的时间会久一点,自己看着改定时吧 一 ...

  4. 今日头条信息流 - 搭建优质广告账户

    一.优质账户的重要性 如广告组.广告计划.人群包等名称必须要命名合理方便区分和分类:(地域.产品.素材.平台.广告位等) 二.搭建方法 账户基础结构  1.自我剖析  2.确定推广的5要素  结构举例 ...

  5. Python3从零开始爬取今日头条的新闻【一、开发环境搭建】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  6. Android屏幕适配框架-(今日头条终极适配方案)

    2019独角兽企业重金招聘Python工程师标准>>> 在Android开发中,屏幕适配是一个非常头痛的问题,因而为了去进行屏幕适配,作为程序员,是呕心沥血,历经磨难,哈哈 我们之前 ...

  7. 今日头条安卓_今日头条加入“常用”小程序窗口,小游戏或将再次崛起?

    安卓手机在今日头条7.1.8版本更新后,头条APP底部出现了[常用]标签,而点击后则会弹出小程序桌面.此前在今日头条上使用过的小程序会出现在此处.最好的位置+战略级的布局,已经很明确告诉我们,需要在今 ...

  8. 安卓屏幕适配方案(根据今日头条方案,升级版)

    前言 屏幕适配方案有很多,比如原生的dp,鸿洋大神的AutoLayout,宽高限定符,今天我用缺点比较小的今日头条方案 头条适配方案的文章链接:https://mp.weixin.qq.com/s/d ...

  9. 今日头条安卓_我为什么开始对今日头条和抖音反感了

    先说说我对头条的使用经历,今日头条我开始使用大概是在2017年5月,那时候我终于把我的诺基亚1520手机换了一个安卓系统的红米note4x,也算是再次回到了安卓手机的阵营,在之前用的安卓手机是小米1电 ...

最新文章

  1. sql server 的一些记录
  2. java的观察者模式
  3. GitHub引入联合提交者功能
  4. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
  5. 5.Vue 计算属性和侦听器
  6. 登陆SharePoint站点出现service unavailable----Http错误503
  7. linux中vi基础知识,Vim入门基础知识集锦
  8. 完善三个数字对象排序程序。MOOC,Java第四章 面向对象和类 第一次作业
  9. 用移动智能设备访问Ossim系统
  10. linux shell之case用法
  11. 《UG NX8.0中文版完全自学手册》一2.4 布局
  12. 洛谷——P1851 好朋友
  13. python oct_Python oct()
  14. 深度 ghost linux系统,用Ghost实现Linux系统的备份
  15. UDP如何实现可靠性传输
  16. 服务器建文件夹,服务器建立文件夹
  17. python爬虫作业帮_2020高校邦《网络数据采集与Python爬虫【带实验】》课后作业参考答案2020知到《PPT创意动画》单选题答案...
  18. oracle定时频率,Oracle 定时任务 — 定时执行存储过程
  19. websocket通信中,send的使用
  20. mysql中存储指纹数据_业务数据指纹(MD5)的使用和存储注意

热门文章

  1. 实习秋招linux和网络编程知识点总结
  2. 2021年煤气新版试题及煤气模拟考试
  3. 百度鹰眼Android SDK 运行配置
  4. typescript真的有学习的必要吗?
  5. 分享爱,分享时光,今日继续分享5款黑科技小软件
  6. python:实现prefix conversions string前缀转换字符串算法(附完整源码)
  7. J2EE程序设计复习
  8. 程序员35岁失业,为什么还那么多人建议学计算机?
  9. 华为笔记本MateBook D14 开箱
  10. 2023系统分析师---需求工程