最近在維護老項目,老項目有一個地方需要修改,就是垂直跑馬燈的問題,之前的垂直跑馬燈是只有文字跑馬燈,新版需要加上。
之前是用的MarqueeView,看了下源代碼是只支持文字的,于是我就改了下原作者的源代碼。
MarqueeView類之前作者的
// 創建ViewFlipper下的TextView private TextView createTextView(CharSequence text, int position) { TextView tv = new TextView(mContext); tv.setGravity(gravity); tv.setText(text); tv.setTextColor(textColor); tv.setTextSize(textSize); tv.setSingleLine(singleLine); tv.setTag(position); return tv; }原實現效果:

這里是只支持textview,然后我就改了改
// 創建ViewFlipper下的View private View createView(int position) { Marquee marquee = marquees.get(position); View view = LayoutInflater.from(mContext).inflate(R.layout.view_marquee, null); ImageView ivMarquee = (ImageView) view.findViewById(R.id.ivMarquee); TextView tvMarquee = (TextView) view.findViewById(R.id.tvMarquee); tvMarquee.setText(marquee.getTitle()); if (isImage) { ivMarquee.setVisibility(VISIBLE); Glide.with(mContext) .load(marquee.getImgUrl()) .placeholder(R.mipmap.ic_launcher) .dontAnimate() .into(ivMarquee); } tvMarquee.setTextSize(textSize); view.setTag(position); return view; }改了之后實現效果:

就這樣簡單
源碼地址:MyDemo
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答