diff --git a/app/src/main/java/cc/ibooker/ztextview/MainActivity.java b/app/src/main/java/cc/ibooker/ztextview/MainActivity.java index 70eafa6..2fe9c05 100644 --- a/app/src/main/java/cc/ibooker/ztextview/MainActivity.java +++ b/app/src/main/java/cc/ibooker/ztextview/MainActivity.java @@ -2,6 +2,7 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.text.Html; import android.widget.TextView; import android.widget.Toast; @@ -12,7 +13,7 @@ import cc.ibooker.ztextviewlib.SpannableStringTextViewUtil; public class MainActivity extends AppCompatActivity implements AutoVerticalScrollTextViewUtil.OnMyClickListener { - private ArrayList list; + private ArrayList list; private AutoVerticalScrollTextViewUtil aUtil; @Override @@ -23,8 +24,13 @@ protected void onCreate(Bundle savedInstanceState) { AutoVerticalScrollTextView textView = (AutoVerticalScrollTextView) findViewById(R.id.autoVerticalScrollTextView); list = new ArrayList<>(); - for (int i = 0; i < 5; i++) - list.add("测试垂直滚动" + i); + for (int i = 0; i < 5; i++) { + if (i == 0 || i == 2 || i == 4) { + list.add(Html.fromHtml("" + "测试垂直滚动" + "" + i + "特殊")); + } else { + list.add("测试垂直滚动" + i); + } + } // 初始化 aUtil = new AutoVerticalScrollTextViewUtil(textView, list); @@ -86,7 +92,7 @@ protected void onCreate(Bundle savedInstanceState) { // autoVerticalScrollTextView点击事件监听 @Override - public void onMyClickListener(int position, String title) { + public void onMyClickListener(int position, CharSequence title) { Toast.makeText(this, list.get(position) + " --- " + title, Toast.LENGTH_SHORT).show(); if (aUtil.getIsRunning()) // 停止滚动 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 3e9c2ff..8c76706 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -2,6 +2,7 @@ @@ -20,9 +21,6 @@ @@ -45,4 +43,3 @@ android:layout_height="wrap_content" android:padding="10dp" /> - diff --git a/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextView.java b/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextView.java index 94ad350..037b9ad 100644 --- a/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextView.java +++ b/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextView.java @@ -128,5 +128,4 @@ protected void applyTransformation(float interpolatedTime, Transformation t) { matrix.postTranslate(centerX, centerY); } } - } diff --git a/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextViewUtil.java b/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextViewUtil.java index 2ff9d30..387dfb8 100644 --- a/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextViewUtil.java +++ b/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/AutoVerticalScrollTextViewUtil.java @@ -30,12 +30,12 @@ public class AutoVerticalScrollTextViewUtil { private int number = 0;// 用来记录滚动次数 private int currentPos = 0;// 标记当前显示哪一项 - private ArrayList mDatas = new ArrayList<>();// 需要轮播的数据源 + private ArrayList mDatas = new ArrayList<>();// 需要轮播的数据源 - private String title;// 需要改变TextView上面的文本内容 + private CharSequence title;// 需要改变TextView上面的文本内容 // 构造方法 - public AutoVerticalScrollTextViewUtil(final AutoVerticalScrollTextView textView, ArrayList datas) { + public AutoVerticalScrollTextViewUtil(final AutoVerticalScrollTextView textView, ArrayList datas) { this.mDatas = datas; this.textView = textView; // 控件点击事件监听 @@ -130,7 +130,7 @@ public void handleMessage(Message msg) { // 点击事件监听 public interface OnMyClickListener { - void onMyClickListener(int position, String title); + void onMyClickListener(int position, CharSequence title); } private OnMyClickListener onMyClickListener; diff --git a/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/MarqueeTextView.java b/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/MarqueeTextView.java index 0c56399..9c80d27 100644 --- a/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/MarqueeTextView.java +++ b/ztextviewlib/src/main/java/cc/ibooker/ztextviewlib/MarqueeTextView.java @@ -1,6 +1,7 @@ package cc.ibooker.ztextviewlib; import android.content.Context; +import android.text.TextUtils; import android.util.AttributeSet; /** @@ -10,18 +11,30 @@ public class MarqueeTextView extends android.support.v7.widget.AppCompatTextView { public MarqueeTextView(Context context) { - super(context); + this(context, null); } public MarqueeTextView(Context context, AttributeSet attrs) { - super(context, attrs); + this(context, attrs, 0); } public MarqueeTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); + init(); } - // 焦点 + // 初始化 + private void init() { + // 设置文本超出部分模式 + this.setEllipsize(TextUtils.TruncateAt.MARQUEE); + // 设置跑马灯重复次数,-1为无限重复 + this.setMarqueeRepeatLimit(-1); + // 单行显示 + this.setSingleLine(true); + this.setMaxLines(1); + } + + // 焦点 聚焦 @Override public boolean isFocused() { return true;