Android TextView实现跑马灯

摘要:
实现选取框效果的TextView:示例1:此示例可以解决为一个TextView实现选取框的效果的问题,但无法解决为所有TextView实现选择框效果的问题。解决方案是创建一个新的类MarqueTextView来继承TextView,并让它的isFocus()方法返回true。packagecom.example。文本视图马灯;importandroid.content。上下文importandroid.util。AttributeSet;importandroid.widget。文本视图;publicclassMarqueTextViewextendsTextView{publicMarqueTextView}super;//TODOAuto-generatedconstructorstub}publicMarkeTextView{super;//TODOAutogeneratedconstructorsstub}public MarqueTextview{super,//TODOAauto-generatedconstructorstub}}@OverridepublicbooleanisFocused(){returntrue;}MarqueTextView。javaactivity_main.xml效果:补充:像素像素不能根据分辨率dp、sp进行缩放,dip可以根据分辨率sp进行缩放。sp更多用于文本缩放

TextView实现跑马灯的效果:
例子一:

这个例子可以解决给一个TextView实现跑马灯的效果,但是不能解决给所有的TextView实现跑马灯的效果。

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:text="这个项目的作用就是让这个单行的很长很长的单独一行的TextView实现跑马灯的效果。。。。。。" />

但是这种方法在有两个TextView的时候不能给两个TextView同时实现跑马灯的效果。
原因是:TextView默认的isFocused()方法默认只能给一个对象实现focused。
解决的办法是新建一个类MarqueeTextView继承TextView,让他的isFocused()方法返回true。(注意:子类MarqueeTextView需要实现父类的所有3个构造函数,不然会有问题)。

Android TextView实现跑马灯第1张Android TextView实现跑马灯第2张
package com.example.textviewhorseracelamp;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;

public class MarqueeTextView extends TextView {
    
    
    public MarqueeTextView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public MarqueeTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    @Override
    public boolean isFocused() {
        return true;
    }
}
MarqueeTextView.java
Android TextView实现跑马灯第1张Android TextView实现跑马灯第4张
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <com.example.textviewhorseracelamp.MarqueeTextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:text="这个项目的作用就是让这个单行的很长很长的单独一行的TextView实现跑马灯的效果。。。。。。" />
    
    <com.example.textviewhorseracelamp.MarqueeTextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:text="这个项目的作用就是让这个单行的很长很长的单独一行的TextView实现跑马灯的效果。。。。。。" />

</RelativeLayout>
activity_main.xml

效果:

Android TextView实现跑马灯第5张

补充:像素
 px不能根据分辨率进行缩放
 dp,sp,dip可以根据分辨率进行缩放显示(现在以dp作为标准)
 sp更多的用在文字的缩放
  
  

免责声明:文章转载自《Android TextView实现跑马灯》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2021年4月2日实验室学术研讨会议记笔记本windows锁定cpu频率的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Tomcat模型结构

一、请求过程 Tomca的两大组件:Connecter和Container Connecter组件 1、Connecter将在某个指定的端口上侦听客户请求,接收浏览器的发过来的 tcp 连接请求,创建一个 Request 和 Response 对象分别用于和请求端交换数据,然后会产生一个线程来处理这个请求并把产生的 Request 和 Response...

Spring学习笔记(14)——SpEL

是什么 Spring表达式语言全称为“Spring Expression Language”,缩写为“SpEL”,类似于Struts2x中使用的OGNL表达式语言,能在运行时构建复杂表达式、存取对象图属性、对象方法调用等等,并能与Spring功能完美整合。 表达式语言给静态Java语言增加了动态功能。 SpEL是单独模块,只依赖于core模块,...

在Tomcat服务器中启动SpringBoot项目原理(简化版)

总的来说,tomcat方式启动WAR包项目, tomcat会查询context上下文中实现ServletContainerInitializer接口的类,然后调用类的onStartup(Set<Class<?>> c, ServletContext ctx)方法 Spring的SpringServletContainerInitia...

HTTP OPTIONS跨域请求

一、场景 今天在监测跨域代码时发现,在调用后端接口的时候会出现两次请求:OPTIONS请求和POST请求。代码如下: /// <summary> /// 自定义中间件要执行的逻辑 /// </summary> /// <param name="context"></param> /// <returns...

Android通过反射获取资源ID

通过反射获取布局文件: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int id = this.getResources().getIdentifier("layout_test", "l...

HTTP Bearer认证及JWT的使用

                            一、自定义CheckJWTAttribute特性方式 之前使用的是这种方式,根据jwt原理自定义生成JWT、验证jwt,感觉挺好。原理就是自定义一个拦截器(特性),拦截器对每个请求都优先进行处理,认证成功的进行下一步操作。 1、定义JWTPayload类 using System; namespace...