【Android】(最新)跑马灯文字水平滚动(79/100)
先上效果:
Android系统中TextView实现跑马灯效果,必须具备以下几个条件:
- android:singleLine=“true”
- android:ellipsize=“marquee”
- android:marqueeRepeatLimit=“marquee_forever”
- TextView必须单行显示,即内容必须超出TextView大小
- TextView要获得焦点才能滚动
示例布局如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.MarqueeActivity"
android:background="#3A3A3A"
>
<FrameLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
>
<TextView
android:id="@+id/tv"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="本直播不构成投资协议,产品的历史业绩不预示未的历史不预谨本直播不构成投资协议,产品的历史业绩不预示未的历史不预谨"
android:textColor="@color/white"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"
/>
</FrameLayout>
</android.support.constraint.ConstraintLayout>
逻辑处理如下:
package top.lc951.myandroid.activity;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.widget.TextView;
import top.lc951.myandroid.R;
/**
* 跑马灯效果
*
* */
public class MarqueeActivity extends AppCompatActivity {
public static void actionActivity(Context context){
Intent intent=new Intent(context,MarqueeActivity.class);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_marquee);
TextView textView=findViewById(R.id.tv);
textView.setSelected(true);//能动起来的关键代码
textView.setText("本直播不构成投资协议" +
",产品的历史业绩不预示未的历史不预谨本直播不构成投资协议" +
",产品的历史业绩不预示未的历史不预谨本直播不构成投资协议" +
",产品的历史业绩不预示未的历史不预谨本直播不构成投资协议" +
",产品的历史业绩不预示未的历史不预谨");
}
}
在没有textView.setSelected(true); 这一行怎么都动不了,参考过很多博客也是没有这行的,看了看日期的确是13年以前的技术博客了。
以前布局就可以动起来的,现在需要加这行才能跑动起来。
注意这行代码,如果跑动动画效果没有请检查一下这行代码
哦!
开源地址:https://gitee.com/lc951/my-android
有兴趣的可以去瞅瞅看,都是一些实用小demo
自研产品推荐
历时一年半多开发终于smartApi-v1.0.0版本在2023-09-15晚十点正式上线
smartApi是一款对标国外的postman的api调试开发工具,由于开发人力就作者一个所以人力有限,因此v1.0.0版本功能进行精简,大功能项有:
- api参数填写
- api请求响应数据展示
- PDF形式的分享文档
- Mock本地化解决方案
- api列表数据本地化处理
- 再加上UI方面的打磨
为了更好服务大家把之前的公众号和软件激活结合,如有疑问请大家反馈到公众号即可,下个版本30%以上的更新会来自公众号的反馈。
嗯!先解释不上服务端原因,API调试工具的绝大多数时候就是一个数据模型、数据处理、数据模型理解共识的问题解决工具,所以作者结合自己十多年开发使用的一些痛点来打造的,再加上服务端开发一般是面向企业的,作者目前没有精力和时间去打造企业服务。再加上没有资金投入所以服务端开发会滞后,至于什么时候会进行开发,这个要看募资情况和用户反馈综合考虑。虽然目前国内有些比较知名的api工具了,但作者使用后还是觉得和实际使用场景不符。如果有相关吐槽也可以在作者的公众号里反馈蛤!
下面是一段smartApi使用介绍: