最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

自定義TextView跑馬燈效果可控制啟動(dòng)/停止/速度/焦點(diǎn)

 更新時(shí)間:2013年01月11日 17:35:39   投稿:whsnow  
Android自帶的跑馬燈效果不太好控制,不能控制速度,不能即時(shí)停止和啟動(dòng),而且還受焦點(diǎn)的影響不已,由于項(xiàng)目需求需所以自己寫了一個(gè)自定義的TextView,感興趣的朋友可以了解下

Android自帶的跑馬燈效果不太好控制,不能控制速度,不能即時(shí)停止和啟動(dòng),而且還受焦點(diǎn)的影響不已。由于項(xiàng)目需求需要用的可控制性高的跑馬燈效果,所以自己寫了一個(gè)自定義的TextView

注意:在布局文件引用本view時(shí),paddingLeft,paddingRigh都必須為0dp,需要增加這兩個(gè)屬性的,大家可以自行修改代碼。
android:ellipsize="marquee" android:singleLine="true" 這兩個(gè)屬性也要加上

復(fù)制代碼 代碼如下:

public class MarqueeText extends TextView implements Runnable {
private int currentScrollX;// 當(dāng)前滾動(dòng)的位置
private boolean isStop = false;
private int textWidth;
private boolean isMeasure = false;
public MarqueeText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MarqueeText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
if (!isMeasure) {// 文字寬度只需獲取一次就可以了
getTextWidth();
isMeasure = true;
}
}
/**
* 獲取文字寬度
*/
private void getTextWidth() {
Paint paint = this.getPaint();
String str = this.getText().toString();
textWidth = (int) paint.measureText(str);
}
@Override
public void run() {
currentScrollX -= 2;// 滾動(dòng)速度
scrollTo(currentScrollX, 0);
if (isStop) {
return;
}
if (getScrollX() <= -(this.getWidth())) {
scrollTo(textWidth, 0);
currentScrollX = textWidth;
// return;
}
postDelayed(this, 5);
}
// 開始滾動(dòng)
public void startScroll() {
isStop = false;
this.removeCallbacks(this);
post(this);
}
// 停止?jié)L動(dòng)
public void stopScroll() {
isStop = true;
}
// 從頭開始滾動(dòng)
public void startFor0() {
currentScrollX = 0;
startScroll();
}
}

布局文件:
復(fù)制代碼 代碼如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="start"
android:text="走起" />
<Button
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="stop"
android:text="停止" />
<Button
android:id="@+id/startfor0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="startFor0"
android:text="從頭開始" />
<simtice.demo.marqueetext.MarqueeText
android:id="@+id/test"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#339320"
android:ellipsize="marquee"
android:singleLine="true"
android:text="這才是真正的文字跑馬燈效果這才是真正的字跑馬燈效果這才是真正的"
android:textColor="#000000"
android:textSize="20dp" >
</simtice.demo.marqueetext.MarqueeText>
</LinearLayout>
MainActivity

復(fù)制代碼 代碼如下:

public class MainActivity extends Activity {
private MarqueeText test;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test = (MarqueeText) this.findViewById(R.id.test);
}
public void start(View v) {
test.startScroll();
}
public void stop(View v) {
test.stopScroll();
}
public void startFor0(View v){
test.startFor0();
}
}

        

相關(guān)文章

  • [Android] 通過GridView仿微信動(dòng)態(tài)添加本地圖片示例代碼

    [Android] 通過GridView仿微信動(dòng)態(tài)添加本地圖片示例代碼

    本篇文章主要介紹了[Android] 通過GridView仿微信動(dòng)態(tài)添加本地圖片示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Android實(shí)現(xiàn)聊天界面

    Android實(shí)現(xiàn)聊天界面

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)聊天界面的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Android判斷定位功能是否可用的方法

    Android判斷定位功能是否可用的方法

    今天小編就為大家分享一篇Android判斷定位功能是否可用的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解Android代碼混淆實(shí)戰(zhàn)

    詳解Android代碼混淆實(shí)戰(zhàn)

    這篇文章主要介紹了詳解Android代碼混淆實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Android實(shí)現(xiàn)圖片浮動(dòng)隨意拖拽效果

    Android實(shí)現(xiàn)圖片浮動(dòng)隨意拖拽效果

    這篇文章主要介紹了Android的圖片在界面隨意拖動(dòng)的功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧
    2018-04-04
  • Android編程之重力感應(yīng)用法分析

    Android編程之重力感應(yīng)用法分析

    這篇文章主要介紹了Android編程之重力感應(yīng)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了重力感應(yīng)的原理、相關(guān)概念與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-10-10
  • Android常見的幾種內(nèi)存泄漏小結(jié)

    Android常見的幾種內(nèi)存泄漏小結(jié)

    本篇文章主要介紹了Android常見的幾種內(nèi)存泄漏小結(jié)。詳細(xì)的介紹了內(nèi)存泄漏的原因及影響和解決方法,有興趣的可以了解一下。
    2017-03-03
  • Android EditText長(zhǎng)按菜單中分享功能的隱藏方法

    Android EditText長(zhǎng)按菜單中分享功能的隱藏方法

    Android EditText控件是經(jīng)常使用的控件,下面這篇文章主要給大家介紹了關(guān)于Android中EditText長(zhǎng)按菜單中分享功能的隱藏方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Android實(shí)現(xiàn)畫畫板案例

    Android實(shí)現(xiàn)畫畫板案例

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)畫畫板案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android系統(tǒng)默認(rèn)對(duì)話框添加圖片功能

    Android系統(tǒng)默認(rèn)對(duì)話框添加圖片功能

    這篇文章主要介紹了Android系統(tǒng)默認(rèn)對(duì)話框添加圖片的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01

最新評(píng)論

蒙山县| 清河县| 精河县| 昔阳县| 女性| 甘孜县| 镇远县| 雷波县| 九寨沟县| 桦川县| 杨浦区| 乌鲁木齐市| 麦盖提县| 尼木县| 夏津县| 四川省| 胶南市| 镇巴县| 大兴区| 小金县| 四会市| 思茅市| 巴楚县| 义马市| 呼图壁县| 紫云| 潜江市| 舞钢市| 金坛市| 屯门区| 建始县| 宣武区| 昌宁县| 徐水县| 新兴县| 米脂县| 会理县| 黔东| 黑水县| 阿荣旗| 西畴县|