依赖
banner----tablayout
compile 'com.youth.banner:banner:1.4.9' compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:design:26.0.0-alpha1'
main布局
<android.support.design.widget.TabLayout android:id="@+id/tab" android:layout_width="match_parent" android:layout_height="50dp" android:background="#ccc" ></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" ></android.support.v4.view.ViewPager>
属性动画类 -------到郭霖微博哟粘
PointEvaluator point MyAnimView(自定义动画类)
import android.animation.Animator; import android.animation.ValueAnimator; import android.content.Context; import android.content.Intent; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; /** * 陈敏慧 * Created by d on 2017/10/25. */ public class MyAnimView extends View{ public static final float RADIUS = 50f; private Point currentPoint; private Paint mPaint; private Context context; public MyAnimView(Context context, AttributeSet attrs) { super(context, attrs); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setColor(Color.BLUE); this.context=context; } @Override protected void onDraw(Canvas canvas) { if (currentPoint == null) { currentPoint = new Point(RADIUS, RADIUS); drawCircle(canvas); startAnimation(); } else { drawCircle(canvas); } } private void drawCircle(Canvas canvas) { float x = currentPoint.getX(); float y = currentPoint.getY(); canvas.drawCircle(x, y, RADIUS, mPaint); } private void startAnimation() { Point startPoint = new Point(RADIUS, RADIUS); Point endPoint = new Point(getWidth() - RADIUS, getHeight() - RADIUS); ValueAnimator anim = ValueAnimator.ofObject(new PointEvaluator(), startPoint, endPoint); anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { currentPoint = (Point) animation.getAnimatedValue(); invalidate(); } }); anim.setDuration(5000); anim.start(); anim.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { context.startActivity(new Intent(context,Main2Activity.class)); } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); } myanimation myanimation; public void setanimation(myanimation myanimation){ this.myanimation=myanimation; } interface myanimation{ public void anima(); } }
主类中
public class Main2Activity extends AppCompatActivity { private ViewPager vp; private android.support.design.widget.TabLayout tab; @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); //设置模式 List<String> list = new ArrayList<>(); ArrayList<Fragment> fragments = new ArrayList<>(); list.add("最新日报"); list.add("专栏"); list.add("主题日报"); fragments.add(new Fragment1()); fragments.add(new Fragment2()); fragments.add(new Fragment3()); System.out.println("=================="+list); System.out.println("=================="+fragments.size()); vp.setAdapter(new MyAdapter(getSupportFragmentManager(),list,fragments)); // tab.setTabMode(android.support.design.widget.TabLayout.MODE_SCROLLABLE); tab.setupWithViewPager(vp); } }fragment轮播类
布局:
<com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="150dp" indicator_height="20dp" indicator_width="20dp" ></com.youth.banner.Banner> <android.support.v7.widget.RecyclerView android:id="@+id/recy" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" ></android.support.v7.widget.RecyclerView>
//找控件设置轮播 banner.setImageLoader(new ImageLoaderBanner()); banner.setImages(imglist); banner.start();