import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView; /**
* 有焦点的TextView
*/
public class FocusedTextView extends TextView { //开发者通过代码创建对象时, 走此构造方法
public FocusedTextView(Context context) {
this(context, null);
System.out.println("构造方法1");
//initView();
} //AttributeSet:属性集合
//当控件配有属性时, 走此构造方法, 由系统底层创建对象
public FocusedTextView(Context context, AttributeSet attrs) {
this(context, attrs, -1);
System.out.println("构造方法2");
//initView();
} //defStyleAttr: 样式
//当控件配有样式时, 走此构造方法, 由系统底层创建对象
public FocusedTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
System.out.println("构造方法3");
initView();
} //初始化当前控件
private void initView() {
// android:ellipsize="marquee"
// android:focusable="true"
// android:focusableInTouchMode="true"
// android:singleLine="true"
setEllipsize(TextUtils.TruncateAt.MARQUEE);//跑马灯效果
//setFocusable(true);//有焦点
//setFocusableInTouchMode(true);//有焦点
setSingleLine();//只显示一行
} //表示当前TextView是否有焦点
//问题: 当同时多个TextView进行跑马灯效果时, 只有一个有焦点,可以跑起来
//解决办法: 重写isFocused, 强制返回true
@Override
public boolean isFocused() {
return true;//强制返回true, 表示永远有焦点
}
}

package com.loaderman.textviewdemo;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.tv);
String newMessageInfo = "<font color='red'><b>最新消息:</b></font>苹果8要发布了,小伙伴们你们心动了,心动不如行动哦!";
tv.setText(Html.fromHtml(newMessageInfo));
}
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.jcf.textviewdemo.MainActivity">
<com.loaderman.textviewdemo.FocusedTextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:textSize="20sp"
android:layout_height="wrap_content"/>
</LinearLayout>

效果图:

在开发中在布局中设置跑马灯效果.当有多个事,可能会市区焦点,但不到所要的效果,自定义可以解决开发中这类问题!

自定义有焦点的TextView实现广告信息左右一直滚动的跑马灯效果的更多相关文章

  1. Android TextView 横向滚动(跑马灯效果)

    Android TextView 中当文字比較多时希望它横向滚动显示,以下是一种亲測可行的方法. 效果图: 1.自己定义TextView,重写isFocused()方法返回true,让自己定义Text ...

  2. TextView跑马灯效果

    转载:http://www.2cto.com/kf/201409/330658.html 一.只想让TextView显示一行,但是文字超过TextView的长度怎么办?在开头显示省略号 android ...

  3. Android学习总结——TextView跑马灯效果

    Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize="marquee" 2.TextView必须单行显示,即内容必须 ...

  4. Android界面(1) 使用TextView实现跑马灯效果

    方法一:(只能实现单个TextView的跑马灯效果)在TextView添加以下控件 android:singleLine="true"只能单行,超出的文字显示为"...& ...

  5. Android 使用TextView实现跑马灯效果

    前言 我们在开发中经常会遇到一个小问题.比如下面一个小例子: 这个文字太长,单行中导致无法全部显示出来,这就是今天要实现的功能. 当然,百度中也有很多这种解决方案. 其中有一种,例如: <Tex ...

  6. TextView的跑马灯效果实现

    TextView的跑马灯效果实现 问题描述 当文字内容过长,但是只允许显示一行时,可以将文字显示为跑马灯效果,即文字滚动显示. 代码实现 第一种方法实现 先查询TextView控件的属性,得到以下信息 ...

  7. ListView 中的TextView实现跑马灯效果

    案例:怎么样在一个ListView中含有TextView的item中实现字母滚动呢.这个在一些特定的场合经常用得到.如下图,当焦点位于某个item的时候其内容就自动滚动显示 要实现这样的效果,废话不多 ...

  8. TextView: android:ellipsize="marquee" 跑马灯效果无效的问题

    今天练习的时候想实现一个文字的跑马灯效果,本来想自己手动实现的,不过突然想起来android里的TextView属性似乎自带了这个效果,叫: android:ellipsize ,平时都是把它的属性值 ...

  9. Flex “跑马灯”效果(自定义“跑马灯”控件)

    自定义类(BroadCastMarquee.as): package marquee { import flash.events.MouseEvent; import flash.events.Tim ...

随机推荐

  1. deep_learning_Function_sklearn的train_test_split()

    sklearn的train_test_split   train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签. 格式: X_tra ...

  2. MFC的一些常用操作

    一.添加消息 MFC和win32不同的一点是MFC采用的是消息的映射机制,即每一个消息都和处理的函数做了映射,我们可以通过查找的方式来得到消息的对应的函数,当然MFC提供了一个非常简便的方法,我们通过 ...

  3. 二、CentOS 7安装部署GitLab服务器(解决邮箱发信问题)

    一.环境安装(10.0.0) 1.安装依赖软件 yum -y install policycoreutils policycoreutils-python openssh-server openssh ...

  4. CNN for NLP

    卷积神经网络在自然语言处理任务中的应用.参考链接:Understanding Convolutional Neural Networks for NLP(2015.11) Instead of ima ...

  5. 使用Sendinput以及GetAsyncKeyState来模拟按键延时

    Code: #include <windows.h> #include <tchar.h> #include <iostream> BOOL flag = TRUE ...

  6. CF888G Xor-MST[最小生成树+01trie]

    前注:关于这题,本人的解法暂时没有成功通过此题,原因是被卡常了.可能需要等待某种机缘来请人调试. 类似uoj的一道题(新年的繁荣),不过是一个有些简单的版本. 因为是完全图,有没有办法明显优化建边,所 ...

  7. python 2 和python 3 中的编码对比

    在 Python 中,不论是 Python2 还是 Python3 中,总体上说,字符都只有两大类: 通用的 Unicode 字符: (unicode 被编码后的)某种编码类型的字符,比如 UTF-8 ...

  8. Spring的BeanPostProcessor和BeanFactoryPostProcessor区别

    Spring提供了两种后处理bean的扩展接口,分别为BeanPostProcessor和BeanFactoryPostProcessor,这两者在使用上是有所区别的. BeanPostProcess ...

  9. 高并发下的 Nginx 优化与负载均衡

    高并发下的 Nginx 优化   英文原文:Optimizing Nginx for High Traffic Loads 过去谈过一些关于Nginx的常见问题; 其中有一些是关于如何优化Nginx. ...

  10. SQL Server 删除日志文件

    -- 查询日志文件名,用于下面删除 USE [data_name] GO SELECT file_id, name FROM sys.database_files /*删除指定数据库的日志文件*/ U ...