android 字体跑马灯,Android中使用TextView实现文字跑马灯效果
通常情况下我们想实现文字的走马灯效果需要在xml文件中这样设置
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" />
大家都懂的就不解释了。
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部署到布局文件中哦
布局代码:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:text="@string/lyric" />
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
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;
}
}
对了 附上效果图。都看到光标在编辑框了~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!
android 字体跑马灯,Android中使用TextView实现文字跑马灯效果相关推荐
- Android中自定义Textview解决文字和数字换行不整齐
效果图: 上面的是原生Textview,第一行末尾数字整体换行了, 下面是自定义Textview,第一行末尾数字分别在第一行和第二行展示 布局中 MyTextview记得换成自己包名下的 <T ...
- android字体颜色黑色,Android中颜色选择器和改变字体颜色的实例教程
1.构建一张七彩图: 我们经常看到这种样子的颜色选择器吧.. 然后其实右边的亮度选择是: 这样我们的代码就可以进行啦... // 创建七彩图片 private void init() { int[] ...
- android 字体设置方正,Android设置TextView的字体
做项目的时候,需要使用到手写字体来让内容更加的美观.可是程序中默认使用的是系统的默认字体,怎么将TextView(或EditText)的字体设置成自己想要的字体呢?步骤如下: 下载字体文件(.ttf格 ...
- android 字体的切换,Android为整个应用切换第三方字体
一. 1.通过反射来获取系统字体并替换 import java.lang.reflect.Field; import android.content.Context; import android.g ...
- android 字体文件压缩,Android 字体使用踩坑指南
Android 字体使用踩坑指南 最近项目改版,根据ui的设计,需要使用到三字体.在使用过程中遇到一些坑,于是有了这个避坑指南! 字体压缩 第一个坑!字体库的体积太大. 字体压缩的前提是要使用的内容是 ...
- Android字体占有内存,Android 字体内存泄露
字体需求 在App开发中,一般都会使用自定义的字体,这些字体美化App的同时,可能还会带来额外的问题,最容易带来的问题就是内存泄露,这里举个实际中遇到的问题作为例子 上面的UI,我们需要在Title. ...
- android 字体文件压缩,Android创建assets文件夹并使用字体图标(Icon Font)
首先我们要知道如何在AS中新建引用assets文件 1.将项目切换到Project模式 Project.png 2.要注意assets文件夹要跟Java文件在同一目录下,都包含在main的文件下面. ...
- android字体斜体代码,Android设置Roboto字体用粗体,斜体,常规,…(类似于自定义字体系列)...
我知道在Android应用程序中以编程方式设置自定义字体. 有没有办法为自定义字体(资产)加载字体,Android框架将使用基于粗体,斜体等的正确文件? 例如,现在我正在尝试将Roboto字体设置为某 ...
- android 字体描边实现,android文字描边功能的实现
这里也要简单说一下,这些小模块并不是我原创,也是当时查资料找到的,由于时间比较久,原文链接已经忘记了,所以这里就不列出引用链接了.不过这些代码我都修改.完善过,也添加了一些注释,希望对大家有帮助. 文 ...
最新文章
- firefox4脚本执行顺序与jquery.globalEval
- 64位传参利用方法LibcSearcher使用入门ROPgadget利用
- Android第二十八天
- 阿里云 超级码力在线编程大赛初赛 第4场 题目3. from start to end
- 【Quartz.net】- Cron表达式
- springboot 使用restTemplate 发送https请求 忽略ssl证书
- 【c++leetcode】判断一个数是否是2的幂、3的幂、4的幂
- 幸福框架:可扩展的应用程序 “启动引导” 框架
- 推荐几个好用的pdf翻译工具
- Linux恢复数据软件,Linux数据恢复工具推荐
- 西方文学名著鉴赏——英文诗歌翻译赏析
- pat 训练题 7-5 基友团 (25分) 暴力判团和最大团
- MTK6577+Android之TP(触摸屏)
- 为什么说HHKB是程序员最好的键盘?
- 【基础入门题013】求连续根号的值
- 人工智能:免疫算法概述
- 网秦手机杀毒软件 v2.1 symbian s60 _symbian 7.0+ 免费
- 全球名校AI课程库(44)| 慕尼黑工大 · 计算机视觉深度学习进阶课『Advanced Deep Learning for Computer Vision』
- Android Studio 报错提示:Skipped due to earlier error
- Ubuntu22.04.1 LTS系统上实现KVM虚拟机显卡直通(AMD/NVIDIA+板载显卡)
热门文章
- RFID射频识别电子标签基础知识汇总
- 拥有它,XML文件少一半
- Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initia
- 限制input框只能输入0~100的正整数
- Effective C++ 条款02:尽量使用const,enum,inline替换#define
- 读书笔记之解忧杂货店
- 学java用什么软件_学java需要用到什么软件?用哪个软件比较好?
- 【论文解读 ESWC 2018 | R-GCN】Modeling Relational Data with Graph Convolutional Networks
- Java学习_Day 02(学习内容:狂神说JAVA零基础P12-P17)
- C语言数组初始化骚操作