android 和傳統跑馬燈效果說再見

2021-07-24 03:00:00 字數 2031 閱讀 1563

android 傳統的跑馬燈效果是文字要在跑在左側最後乙個文字消失了,然後才從右邊位置繼續跑,這種效果不太好,我這個實現是但文字跑到左側還有比如100px的時候 右邊就開始跑了,說也說不清楚,看效果

自定義跑馬燈view

package com.example.aa;

import android.content.context;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.os.handler;

import android.os.message;

import android.text.textutils;

import android.util.attributeset;

import android.util.log;

import android.view.view;

import android.view.windowmanager;

public class marqueetext extends view

if(math.abs(x)>=strwidth)

if(isscrollin)

}else

if(isscrollout)

}invalidate();

mhandler.sendemptymessagedelayed(1

,50);

} }

};public marqueetext(context context)

public marqueetext(context context, attributeset attrs)

public marqueetext(context context, attributeset attrs, int defstyleattr)

@override

protected void

ondraw(canvas canvas)

if(isscrollin)

}if(!ismeasure)

}@override

protected void

onmeasure(int widthmeasurespec, int heightmeasurespec)

@override

public void

onwindowfocuschanged(boolean haswindowfocus) else

}public static int

dip2px(context context, float dpvalue)

/*** 根據手機的解析度從

px(畫素

) 的單位 轉成為

dp*/

public static int

px2dip(context context, float pxvalue)

}

布局檔案:

xmlns:

android

=""android

:layout_width=

"match_parent"

android

:layout_height=

"match_parent"

android

:background=

"#ffffff"

>

android

:layout_width=

"match_parent"

android

:layout_height=

"wrap_content"

android

:layout_margintop=

"120px"

/>

效果:

android 文字跑馬燈效果

實現文字跑馬燈效果可以在xml中設定相應屬性,也可以在 中動態控制。xml 幾個重要的屬性 設定一直滾動 android marqueerepeatlimit marquee forever 表示乙個edittext滿了後是自動橫著移動不是預設的換行 android scrollhorizontal...

跑馬燈效果

cgrect frame labelshow.frame frame.origin.x 180 labelshow.frame frame uiview beginanimations testanimation context null uiview setanimationduration 8....

跑馬燈效果

一句話概括,平移再畫一次。textview 預設就支援跑馬燈效果,但需要設定一些東西,滿足一些條件。但我想知道它的原理。看這效果,就是平滑移動 textview 的內容,這不就是 mscrollx 幹的嗎,結合 valueanimator 很容易就實現了。難點在於,把文字的頭部重新從右邊開始畫出來。...