package com.example.administrator.zxqdemo; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.util.Log; import android.view.animation.AccelerateInterpolator; import android.widget.Scroller; import android.widget.TextView; import java.util.List; /** * Created by Administrator on 2016/9/27. */ public class RunHorseView extends TextView { private Scroller mScroller; public RunHorseView(Context context) { super(context); } public RunHorseView(Context context, AttributeSet attrs) { super(context, attrs); mScroller=new Scroller(context,new AccelerateInterpolator()); } public RunHorseView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mScroller=new Scroller(context,new AccelerateInterpolator()); } private List<String> listSource; private int size; public void initSource(List<String> listSource) { this.listSource=listSource; size=listSource.size(); } String drawText=""; @Override protected void onDraw(Canvas canvas) { this.setText(drawText); Log.e("dd","ondraw"); super.onDraw(canvas); } int index=0; @Override public void computeScroll() { if(mScroller.computeScrollOffset()) { Log.e("dd","x:"+mScroller.getCurrX()+"y:"+mScroller.getCurrY()); scrollTo(mScroller.getCurrX(),mScroller.getCurrY()); Log.e("dd","compute"); postInvalidate(); }else { drawText=listSource.get(index); startScorll(); index++; index=index%size; } super.computeScroll(); } public void startScorll() { int dy=getHeight()-((int)getTextSize())/2; Log.e("dy","dy:"+dy); mScroller.startScroll(0,0,0,dy,2000); Log.e("dd","start"); invalidate(); } } //调用过程RunHorseView runHorseView= (RunHorseView) findViewById(R.id.runHorse); List<String> list=new ArrayList<>(); list.add("张三 你中了5000000"); list.add("李四 你中了5000000"); list.add("王五 你中了5000000"); list.add("孙六 你中了5000000"); list.add("钱七 你中了5000000"); list.add("周八 你中了5000000"); runHorseView.initSource(list); runHorseView.startScorll();
android 跑马灯(继承TextView)
最新推荐文章于 2022-02-08 23:06:56 发布