布局activity_main中:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.com.day426.MainActivity" android:background="@mipmap/ee"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="400dp" android:id="@+id/tvshou" android:textColor="#FF6B0F" android:text="5秒后跳转" /> </RelativeLayout>
MainActivity:
package com.example.com.day426;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
private TextView tvshou;
private int time = 5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvshou = findViewById(R.id.tvshou);
final Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (time>0){
time--;
tvshou.setText(time+"后跳转");
}else {
timer.cancel();
Intent intent = new Intent(MainActivity.this, Second.class);
startActivity(intent);
}
}
});
}
};
timer.schedule(timerTask, 0, 1000);
}
}
第二个页面:
布局:
<?xml version="1.0" encoding="utf-8"?> <com.handmark.pulltorefresh.library.PullToRefreshScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/psv" tools:context="com.example.com.day426.Second"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="200dp"> </android.support.v4.view.ViewPager> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:id="@+id/lin_point" android:background="#f00" android:layout_weight="1"> </LinearLayout> <com.example.com.day426.MylistView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/mylv" > </com.example.com.day426.MylistView> </LinearLayout> </com.handmark.pulltorefresh.library.PullToRefreshScrollView>
第二个页面代码:
package com.example.com.day426; import android.graphics.Bitmap; import android.os.Handler; import android.os.Message; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ScrollView; import com.example.com.day426.util.MyTask; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import java.util.ArrayList; import java.util.List; public class Second extends AppCompatActivity { private PullToRefreshScrollView psv; private DisplayImageOptions options; private ViewPager vp; private int num=10; private int one=1; private int type; private List<ImageView> li = new ArrayList<>(); private ArrayList<String> as; private List<Reqbean.NewslistBean>list=new ArrayList<>(); private MylistView mylv; private String urldata = "http://api.tianapi.com/social/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num="+num; private Handler myHandler = new Handler() { @Override public void handleMessage(Message msg) { int position = vp.getCurrentItem(); position++; vp.setCurrentItem(position); //调用方法 ins(position % as.size()); sendEmptyMessageDelayed(0, 1000); } }; private LinearLayout lin_point; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.seconditem); psv = findViewById(R.id.psv); vp = findViewById(R.id.vp); mylv = findViewById(R.id.mylv); lin_point = findViewById(R.id.lin_point); intpsv(); //ins(); getdatas(); options = new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(true)//使用磁盘缓存 .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时 .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节 .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式 //displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义 .build(); } /* private void showPics(List<Reqbean.NewslistBean> data) { as.clear(); //为轮播图添加地址 as.add("http://365jia.cn/uploads/" + data.get(0).getPicUrl()); as.add("http://365jia.cn/uploads/" + data.get(1).getPicUrl()); as.add("http://365jia.cn/uploads/" + data.get(2).getPicUrl()); }*/ private void getdatas() { MyTask myTask = new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson = new Gson(); Reqbean reqbean = gson.fromJson(jsonstr, Reqbean.class); List<Reqbean.NewslistBean> newslist = reqbean.getNewslist(); if (type==1){ list.clear(); } list.addAll(reqbean.getNewslist()); as = new ArrayList<>(); for (int i = 0; i < newslist.size(); i++) { String picUrl = newslist.get(i).getPicUrl(); as.add(picUrl); } //判断 if (one==1){ for (int i = 0; i < newslist.size(); i++) { ImageView iv = new ImageView(Second.this); if (i == 0) { iv.setBackgroundResource(R.drawable.s); } else { iv.setBackgroundResource(R.drawable.a); } lin_point.addView(iv); li.add(iv); // li.clear(); //设置小圆点的margin值 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1); lp.setMargins(5, 10, 5, 10); iv.setLayoutParams(lp); } } vp.setCurrentItem(5 * 10);//设置默认显示的页面 vp.setAdapter(new Myvpadapter()); mylv.setAdapter(new MyAdapter(Second.this,newslist)); myHandler.sendEmptyMessageDelayed(0,1000); } }); myTask.execute(urldata); psv.onRefreshComplete(); } private void intpsv() { psv.setMode(PullToRefreshBase.Mode.BOTH); psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) { one=2; type = 1; num = 10; urldata = "http://api.tianapi.com/social/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=" + num; myHandler.removeCallbacksAndMessages(null); getdatas(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) { one=2; type = 2; num+=10; myHandler.removeCallbacksAndMessages(null); urldata = "http://api.tianapi.com/social/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=" + num; getdatas(); } }); } private class Myvpadapter extends 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) { ImageView img = new ImageView(Second.this); //img.setImageResource(R.drawable.default_ptr_flip); Log.d("--", "instantiateItem: "+img); ImageLoader.getInstance().displayImage(as.get(position%as.size()),img,options); container.addView(img); return img; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } private void ins(int pageIndex) { Log.d("aaa=========", li.size()+"dasfsdfsdfsdf"); for (int i = 0; i < li.size(); i++) { if (i == pageIndex) { li.get(i).setImageResource(R.drawable.s);//设置为选中的 } else { li.get(i).setImageResource(R.drawable.a); } } } }
注:适配器和Bean类都一样
自定义MyListview:
package com.example.com.day426; import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; /** * Created by 联想 on 2018/4/26. */ class MylistView extends ListView{ public MylistView(Context context) { super(context); } public MylistView(Context context, AttributeSet attrs) { super(context, attrs); } public MylistView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int i = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, i); } }