• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)

android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android textview,android textview属性,android textview换行,android textview加粗,android textview滚动等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)


通常情况下我们想实现文字的走马灯效果需要在xml文件中这样设置

  <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="@string/lyric"></textview>

大家都懂的就不解释了。

singleLine :boolean型的是否让文字只显示在一行而不是多行显示

ellipsize:滚动效果,里面有(none,start,middle,end,marquee),其中none表示正常显示文字,即使一行显示不完全,也无任何效果。star,就是假如文字在一行显示不完全,在开头显示...,同理,end一行的最后一个文字后面加...,middle就是所有文字显示在一行,如果文字太多,在中间加入...。可能我解释的不清楚,大概就是这样 读者可以自己测试一下。至于marquee就是文字走马灯效果啦。

当然,如果你只设置了这些文字还是不会滚动的。还要使TextView获取焦点。

focusable:是否能够焦点,boolean型的

focusableInTouchMode:boolean型的。

在触摸模式下是否获取焦点。

当你设置了这些部署在手机上,很明显会实现走马灯效果。效果如下:

\

可是如果你在这个Activity实例中再添加一个编辑框控件,点击编辑框后就会发现走马灯效果消失了.

就像这样

\

这是为什么呢?

因为点击编辑框,编辑框会获取屏幕焦点,由于通常情况下屏幕的焦点只能有一个,TextView失去了焦点,也就不会滚动了。这时候我们要怎么办呢?

那就欺骗系统呗。告诉它我们的TextView也是有焦点的。没错 两个焦点。

如何做?我们就新建一个我们自己的TextView呗。

首先我们新建一个名为MyTextView继承TextView的类,重写里面的方法,其中有三个方法是必须的,就像我们总在MainActivity里面重写OnCreate方法一样,作用是什么 我也不清楚。好奇的同学请百度。哈哈~

我们要知道系统是如何判断一个控件是否获取焦点了呢?

 

	public boolean isFocused() {
		// TODO Auto-generated method stub
		return super.isFocused();
	}

就是这个方法。前面说了 我们要欺骗系统 我们的TextViwe是有焦点的。所以我们在这个方法里面一直return true就好了 哈哈 是不是特流氓。。。

做完了这些别忘记把我们的TextView部署到布局文件中哦

布局代码:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

    <com.example.textview.mytextview android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:singleline="true" android:text="@string/lyric">

    <edittext android:layout_width="fill_parent" android:layout_height="wrap_content">

</edittext></com.example.textview.mytextview></linearlayout>

MainActivity.class
package com.example.textview;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}


}

MyTextView.class
package com.example.textview;

import android.content.Context;
import android.util.AttributeSet;
import android.view.WindowId.FocusObserver;
import android.widget.TextView;

public class MyTextView extends TextView{

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

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

	public MyTextView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	@Override
	public boolean isFocused() {
		// TODO Auto-generated method stub
		return true;
	}
	
}

对了 附上效果图。都看到光标在编辑框了~

 

\

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android属性系统简介,android属性简介
  • TextView,iostextview
  • Android中TextView设置最大长度,超出显示省略号,androidtextview
  • Android之TextView,androidtextview
  • android:SpannableString的应用,TextView中某些文字的点击事件
  • Android中TextView添加删除线,androidtextview
  • android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)
  • android TextView 设置字体大小,androidtextview
  • android TextView实现跑马灯效果

相关文章

  • 2017-05-26Couldn&#39;t load libPassword from loader:NDK开发中C文件编译成cpu的so类库时,找不到类库报错的原因之一,libpasswordndk
  • 2017-05-26Android开发学习之路--Service之初体验
  • 2017-05-26Android菜单项内容大全,android菜单项大全
  • 2017-05-26关于linux的busybox工具mdev的使用和声卡热插拔以及驱动挂载的总结
  • 2017-05-26Android studio Error occurred during initialization of VM 问题解决,initializationofvm
  • 2017-05-26实现在矩形框中输入文字,可以显示剩余字数的功能,矩形字数
  • 2017-05-26GreenDao教程1,greendao教程
  • 2017-05-26关于android的一些基础知识,android基础知识
  • 2017-05-26上传图像之裁剪,图像裁剪
  • 2017-05-26在Android Studio中安装OpenCV mac环境/Linux环境

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • nginx rewrite常用示例
    • android自定义控件(二),简易的数值输入器
    • 4.2.2 Service进阶
    • Android网络编程(二)HttpClient与HttpURLConnection
    • 安卓第一天笔记,安卓第一天
    • Android文件下载之进度检测,android文件下载
    • Android之ViewTreeObserver
    • Android源码解析--SwipeMenuListView仿QQ聊天左滑
    • 活动的生周期(四)活动结束前的数据保存,周期活动结束
    • [android] 与PHP的session进行交互demo,androidsession

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有