首页

文章

android怎样实现跑马灯效果

发布网友 发布时间:2022-04-20 04:18

我来回答

1个回答

热心网友 时间:2023-05-18 09:02

  Android自带的跑马灯效果不太好控制,不能控制速度,不能即时停止和启动,而且还受焦点的影响蛋疼不已。由于项目需求需要用的可控制性高的跑马灯效果,所以自己写了一个自定义的TextView

android:ellipsize="marquee" android:singleLine="true" 这两个属性也要加上

public class MarqueeText extends TextView implements Runnable {

private int currentScrollX;// 当前滚动的位置

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;// 滚动速度

scrollTo(currentScrollX, 0);

if (isStop) {

return;

}

if (getScrollX() <= -(this.getWidth())) {

scrollTo(textWidth, 0);

currentScrollX = textWidth;

// return;

}

postDelayed(this, 5);

}

// 开始滚动

public void startScroll() {

isStop = false;

this.removeCallbacks(this);

post(this);

}

// 停止滚动

public void stopScroll() {

isStop = true;

}

// 从头开始滚动

public void startFor0() {

currentScrollX = 0;

startScroll();

}

}布局文件:

<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>MainActivitypublic
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(); }}
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 2021牛年新年祝福语小学生 祝福语牛年 牛年新春祝福语2021简短 2021牛年新年祝福语怎么写? 牛年新年快乐祝福语 新年贺词2021年简短牛年 2021牛年的祝福语简短 最新牛2021新春祝福语 2021牛年祝福语大全 最新牛2021祝福语贺词牛气冲天 牛年的新年祝福语四句 2021牛年集体祝福语 2021新年祝福语大全 简短牛年 2021年牛年祝福语怎么写 2021新年贺词简短牛年 2021牛年年会祝福语有哪些? 2021牛年新年祝福语感谢 2021年牛年春节祝福语大全 简短 新年祝福语2021牛年最火 小米手电筒咋开启 android 跑马灯效果,如果文字不超过宽度,我也想... android 跑马灯怎么弄 求一款安卓手机边框跑马灯软件。 android 跑马灯失效的原因有哪些 手机屏幕跑马灯怎么样安装 安卓中TextView跑马灯效果怎么显示 android跑马灯一般会有多少CPU占用率? androidsingleline过时怎么做跑马灯 android实现手机屏幕不断闪烁功能 为什么android的跑马灯效果会出现暂停 android中能不能将图片弄成跑马灯的效果? android 怎样给一个由三个textview 组成的添加跑马... android 文字跑马灯效果怎样控制滚动速度啊,效果... android同一行中两个跑马灯为什么第二个不动? android同时播放动画和跑马灯冲突了怎么解决 用androidstudio的textview怎么实现跑马灯 安卓listview怎么实现垂直跑马灯效果 安卓跑马灯带按钮控制的,源码带上去都没有用,运... 燃气热水器在哪儿更换电池 液化石油气热水器电池启动好还是电源启动好?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com