<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 基础属性详解:-->
<!-- 1.textColor:设置字体颜色-->
<!-- 2.textStyle:设置字体风格 normal(无效果) bold(加粗) italic(斜体)-->
<!-- 3.textSize:字体大小,单位一般使用sp-->
<!-- 4.background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片-->
<!-- 5.gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等等-->
<!-- match_parent:取得 LinearLayout 容器的宽度.-->
<!-- wrap_content:根据里面的内容自动分配宽度-->
<!-- 可以数字设置 dp--> <!-- java 代码设置文本 -> tv_one.setText("zhengleiya");-->
<!-- 将xml文本中的设置文本覆盖--> <!-- 在合适的位置设置合适的属性--> <!-- 带阴影的TextView-->
<!-- 1.android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用-->
<!-- 2.android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0-->
<!-- 3.android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置-->
<!-- 4.android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置--> <!-- 实现跑马灯的效果-->
<!-- 1.android:singleLine:内容单行显示-->
<!-- 2.android:focusable是否可以获取焦点-->
<!-- 3.android:focusableInTouchModel:用于控制视图在触摸模式下是否可以聚焦-->
<!-- 4.android:ellipsize在哪里省略文本-->
<!-- 5.android:marqueeRepeatLimit:字幕动画重复的次数--> <!-- 跑马灯方式一:-->
<!-- android:clickable="true":可以点击-->
<!-- 方式二:-->
<!-- 新建类,并继承TextView,实现前三个构造方法-->
<!-- 重写 isFocused 并返回 true-->
<!-- 将xml TextView 换成自定义全类名 <com.example.basicattribute.MyTextView--> 方式三
<!-- <requestFocus/> 请求焦点--> <TextView
android:id="@+id/tv_one"
android:text="@string/tv_one"
android:textColor="#FF000000"
android:textStyle="normal"
android:textSize="30sp"
android:gravity="center_vertical" android:shadowColor="@color/red"
android:shadowRadius="3.0"
android:shadowDx="10.0"
android:shadowDy="10.0" android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:clickable="true" android:layout_width="match_parent"
android:layout_height="200dp">
<requestFocus/> </TextView> /> </LinearLayout>
 1 // 新建类 MyTextView
2 package com.example.basicattribute;
3
4 import android.content.Context;
5 import android.util.AttributeSet;
6 import android.widget.TextView;
7
8 import androidx.annotation.Nullable;
9
10 public class MyTextView extends androidx.appcompat.widget.AppCompatTextView {
11 public MyTextView(Context context) {
12 super(context);
13 }
14
15 public MyTextView(Context context, @Nullable AttributeSet attrs) {
16 super(context, attrs);
17 }
18
19 public MyTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
20 super(context, attrs, defStyleAttr);
21 }
22
23 @Override
24 public boolean isFocused() {
25 return true;
26 }
27 }

Android---TextView基础属性 + 跑马灯的三种方式的更多相关文章

  1. Android:TextView 自动滚动(跑马灯) (转)

    Android:TextView 自动滚动(跑马灯)       TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true ...

  2. Android - 页面返回上一页面的三种方式

    今年刚刚跳槽到了新公司,也开始转型做Android,由此开始Android的学习历程. 最近在解很多UI的bug,在解bug过程中,总结了在UI的实现过程中,页面返回上一页面的几种实现方式. 一. 自 ...

  3. Python基础之格式化输出的三种方式

    目录 1. 格式化输出的三种方式 1.1 占位符 1.2 format格式化 1.3 f-string格式化 1. 格式化输出的三种方式 在程序中,需要将输出信息打印成固定的格式,这时候就需要格式化输 ...

  4. Android TextView里直接显示图片的三种方法

    方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般假设字体是在图片上重叠的推荐这样写.时间关系,这个不付源代码了. 方法二:利用Tex ...

  5. Android 监听软键盘按键的三种方式

    前言: 我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“Go”按键加载url页面:在点击搜索框的时候,点击右下角的searc ...

  6. Android 开发添加控件事件的三种方式

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

  7. JSP | 基础 | 新建Hello world 的三种方式

    第一种: 直接写一个 test.jsp 文件到ROOT文件目录下,内容如下,访问 “http://localhost:8080/test.jsp” <%-- Licensed to the Ap ...

  8. Android - TextView Ellipsize属性

    Android - TextView Ellipsize属性 本文地址: http://blog.csdn.net/caroline_wendy android:ellipsize属性: If set ...

  9. Android平台中实现对XML的三种解析方式

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

  10. Android 使用OpenCV的三种方式(Android Studio)

    http://blog.csdn.net/sbsujjbcy/article/details/49520791 其实最早接触OpenCV是很久很久之前的事了,大概在2013年的5,6月份,当时还是个菜 ...

随机推荐

  1. 手撕Vue-数据驱动界面改变中

    经过上一篇的介绍,已经实现了观察者模式的基本内容,接下来要完成的就是将上一篇的发布订阅模式运用到 Nue 中,实现数据驱动界面改变. 在监听数据变化的章节当中,根据指定的区域和数据去编译渲染界面 这个 ...

  2. 【Jmeter】Request1输出作为Request2输入-后置处理器

    [Jmeter]基础介绍-详细 接上文,继续介绍Jmeter,本文关注点为如何解决上文中提到的第一个问题,即: 需要实现Request1的返回作为Request2的RequestBody或Header ...

  3. Android Graphics 显示系统 - 如何模拟多(物理)显示屏?

    " 本着花小钱办大事,不花钱也办事的原则,为了避免花钱买设备,那如何更便捷地学习/测试Android多屏显示的内容呢?本文就给大家介绍一种模拟Android多个物理屏幕显示的方法." ...

  4. 【进阶篇】Java 实际开发中积累的几个小技巧(一)

    目录 前言 一.枚举类的注解 二.RESTful 接口 三.类属性转换 四.Stream 流 五.判空和断言 5.1判空部分 5.2断言部分 文章小结 前言 笔者目前从事一线 Java 开发今年是第 ...

  5. LeetCode组合总和I~IV和背包问题小结

    一.组合总和问题 最近在看leetcode的组合问题,一共四道,总结一下共通之处与不同之处. 原题链接: 组合总和 组合总和II 组合总和III 组合总和IV 对比如下,为了便于对比,将原题目的叙述方 ...

  6. 关于 javax.validation.constraints 的测试,以后用到的 会继续补充

    参见:https://www.cnblogs.com/xiaogangfan/p/5987659.html 1.@Size注解测试:

  7. 《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(尾)

    第 8 章 认证和安全 配置数据保护 在默认的情况下,数据保护 API 有自身的默认配置,如密钥的保存位置.密钥的有效期.所使用的算法等 前面已经提到了密钥的默认有效期以及用到的算法,对于密钥的保存位 ...

  8. C++——异常处理模块笔记

    异常处理是C++中的重要概念之一,用于处理在程序执行过程中可能发生的错误或异常情况.异常是指在程序执行过程中发生的一些不寻常的事件,例如除零错误.访问无效内存等.C++提供了一套异常处理机制,使得程序 ...

  9. UVA10225 Discrete Logging 题解

    题目传送门 前置知识 大步小步算法 题意 多组询问,每次询问依次给定 \(p,a,b\),求 \(a^{x} \equiv b \pmod{p}\) 的最小非负整数解,其中 \(a,p\) 互质. 解 ...

  10. NC20185 [JSOI2010]缓存交换

    题目链接 题目 题目描述 在计算机中,CPU只能和高速缓存Cache直接交换数据.当所需的内存单元不在Cache中时,则需要从主存里把数据调入Cache.此时,如果Cache容量已满,则必须先从中删除 ...