安卓APP_ 控件(1)—— TextView

摘自:安卓APP_ 控件(1)—— TextView
作者:丶PURSUING
发布时间: 2021-03-28 21:53:49
网址:https://blog.csdn.net/weixin_44742824/article/details/115283233

本文为学习笔记,是安卓APP学习的开篇。

根据教学视频内容记录学习过程。笔记适合复习的时候看,初次学习还是建议先看一遍视频教程(老师讲得很好哦)

总体感觉是老师是建立在你有一定的基础上的教学,所以有一些知识不太清晰,需要自己多加琢磨(可能是我太菜了)

作者:Android架构解析:leo老师
教学视频地址:【2021最新版】Android(安卓)开发零基础入门课程【全套】

TestView

  • README
  • 一、容器的创建与TextView控件的使用:字体样式
  • 二、设置字体阴影
  • 三、字体弹幕跑马效果
  • 其他:必备快捷键

README

注意:一定要有爪蛙基础,先把陈立臣老师的爪蛙基础课看完。

可以回顾java基础系列笔记:如:java的面向对象基础(3) —— 接口,抽象类、内部类、匿名内部类 …

还有一个很棒很好用的学习网站,好用到爆炸!!
菜鸟教程:Android 基础入门教程

一、容器的创建与TextView控件的使用:字体样式

下面涉及到两个主要的文件类型:

.xml负责页面布局效果,.java负责后台逻辑。

先做一个最简单的例子,显示效果如下图:
在这里插入图片描述

(1)MainActivity.java

重点看Main中注释的两句,其他都是框架。在Main中,主要创建了一个控件对象 tv_one

package com.example.myfirst;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.TextView; //引入控件的包public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv_one = findViewById(R.id.tv_one); //创建控件对象tv_one.setText("huatianzhu");//这里设置的内容会把xml中的相同设置覆盖//所以你看到的不是“就这就这”    }
}

(2)activity_main.xml

控件效果的主要设置

(初次接触这个容器的框架代码建议多打几遍)

<?xml version="1.0" encoding="utf-8"?><!--容器设置-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-- id               控件id,唯一标识一个控件;textColor        设置颜色引用了color名为teal_200里面的内容;--><!-- 控件设置--><TextViewandroid:id="@+id/tv_one"android:text="@string/tv_one"android:textColor="@color/teal_200"android:textStyle="italic"android:textSize="70sp"android:background="@color/purple_200"android:gravity="center_vertical"android:layout_width="match_parent"android:layout_height="200dp"/></LinearLayout>

这里首先创建了一个容器,把控件放在容器中,并且控件的范围不得大于容器。

控件框范围的单位dp和字体大小sp都是为了进行不同机型,不同屏幕大小而适配。

(3)colors.xml

可以理解为颜色库

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="purple_200">#FFBB86FC</color><color name="purple_500">#FF6200EE</color><color name="purple_700">#FF3700B3</color><color name="teal_200">#FF03DAC5</color><color name="teal_700">#FF018786</color><color name="black">#FF000000</color><color name="white">#FFFFFFFF</color></resources>

调用一个颜色示例:android:textColor="@color/teal_200"

(4)strings.xml

可以理解为字符串库

<resources><string name="app_name">myFirst</string><string name="tv_one">就这就这</string>
</resources>
  • 1
  • 2
  • 3
  • 4

调用方法与颜色相同

二、设置字体阴影

如下图:

在这里插入图片描述
activity_main.xml的基础上添加:(注意不用添加TextView框架,这里仅为了CSDN中的代码高亮)

<!--shadowColor    阴影颜色shadowRadius   阴影模糊度,一般设置为3.0shadowDx       阴影横向偏离shadowDy       阴影纵向偏离
--><TextViewandroid:shadowColor="@color/purple_200"android:shadowRadius="3.0"android:shadowDx="15.0"android:shadowDy="15.0" "/>

三、字体弹幕跑马效果

效果:

在这里插入图片描述
注意:先把.java创建对象的那两句去掉。

主要修改添加activity_main.xml中的代码

<!--singleLine           内容单行显示:文本内容长度超过控件框进行自动换行ellipsize            文本超出时,怎样处理省略的文本:这里设置为跑马灯(默认为换行)   marqueeRepeatLimit   跑马灯效果循环次数focusable            是否可以获得焦点focusableInTouchMode 是否可以通过触摸获取焦点clickable            是否可以点击
--><TextViewandroid:singleLine="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:focusable="true"android:focusableInTouchMode="true"android:clickable="true"/>

TextView要获取焦点才能够实现跑马灯效果,上述的示例是通过触摸点击获取焦点。

但滚动的字幕一般多用于“自动”开启,所以还有以下两种办法自动获取焦点

(1)创建一个新的类myTextView,继承原来的TextView并且重写它的方法:

如下:在继承TextView的时候完成了它的前三个构造方法,并重写了一个方法实现直接获取焦点。

package com.example.myfirst;import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;import androidx.annotation.Nullable;//老师是没有在app目录下创建的,而是新建了一个和app一样的文件夹,所以我在继承的时候要把这个TextView写全
public class myTextView extends androidx.appcompat.widget.AppCompatTextView {public myTextView(Context context) {super(context);}public myTextView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public myTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overridepublic boolean isFocused() {return true;    //方法重写,直接return true,直接获取焦点}
}

此时在activity_main_xml中要更改为刚才创建的类:
在这里插入图片描述这样运行程序便直接开始跑马灯效果。

(2)直接在控件TextView结束后请求焦点:

在activity_main_xml中

	<TextView.../><requestFocus/>

其他:必备快捷键

Ctrl + /
注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号

Ctrl + Alt + L
格式化代码,可以对当前文件和整个包目录使用

Ctrl + R
在当前文件进行文本替换

Ctrl + Y
删除光标所在行 或 删除选中的行
alt+左/右方向键
回到上一个/下一个位置

想使用自动补全时,最快的办法是跳着输入字母。
比如你想快速输入android:layout_width,就直接打alawi等等,打几个关键字然后回车自动补全.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用python做数据分析pdf_利用python进行数据分析pdf

利用python进行数据分析pdf微盘下载&#xff01;《利用python进行数据分析》利用Python实现数据密集型应用由浅入深帮助读者解决数据分析问题~适合刚刚接触Python的分析人员以及刚刚接触科学计算的Python程序员。利用python进行数据分析简介&#xff1a; 还在苦苦寻觅用Python控…

安卓APP_ 控件(2)—— Button

摘自&#xff1a;安卓APP_ 控件&#xff08;2&#xff09;—— Button 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-03-29 14:20:54 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115290501 开篇&#xff1a;安卓APP_ 控件&#xff08;1…

安卓APP_ 控件(3)—— EditText

摘自&#xff1a;安卓APP_ 控件&#xff08;3&#xff09;—— EditText 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-03-29 18:43:40 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115305883 开篇&#xff1a;安卓APP_ 控件&#xff08…

python做游戏怎么实现窗口_python和py游戏窗口类

你在draw_sprite()中有事件循环&#xff0c;所以它一直运行到游戏结束&#xff0c;window.set_background永远不会执行。在您的代码构造不正确。在我试着更正它&#xff0c;稍后再发送代码。在编辑&#xff1a;如何组织代码的简单示例。在现在它在一个文件中。在Pygame中总是一…

如何使得账户密码永不过期

如何使得账户密码永不过期 原文:如何使得账户密码永不过期可以通过以下vbs脚本做的使得账户密码永不过期 dim users获取所有用户set users getobject("winmgmts:{impersonationlevelimpersonate}").instancesof("win32_useraccount")for each user in use…

怎么下载并安装python_怎么下载官网python并安装

怎么下载官网python并安装&#xff1f;百度搜索Python官网。看到上图显示官网的没&#xff0c;点击进入。把鼠标移到downloads上&#xff0c;然后看到下拉选项&#xff0c;点击Windows。然后看到如下界面。这么多的安装包&#xff0c;该选那个呢。下图画圈的是版本号&#xff0…

匿名函数python_基于python内置函数与匿名函数详解

内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() pow() super()…

ASP.NET AJAX(服务器回调)

如果只用纯粹的 js &#xff0c;你必须弥补 ASP.NET 服务器端抽象和有限的 HTML DOM 之间的鸿沟&#xff0c;这不简单&#xff0c;没有 VS 的智能提示和调试工具&#xff0c;编写无错的代码和诊断错误都非常困难。由于各种突发事件及实现的差异&#xff0c;编写能够在所有现代浏…

git版本回退命令_Git学习版本回退和管理文件的修改及删除操作

版本回退前面我们成功的提交了一次mygit.txt&#xff0c;下面咱对它进行修改&#xff0c;内容如下&#xff1a;Hello GitGit is so easy.然后用git status来跟踪该文件的状态&#xff1a;可以看到hellogit.txt已经被修改过了&#xff0c;到底这次修改的内容与上次的内容有什么不…

node 版本升级_Node-RED: 自动化事件触发工具的安装与介绍

Node-RED 介绍Node-RED 是一种基于流程的编程工具由 IBM 的新兴技术服务团队原创开发Node-RED 是一种事件触发工具&#xff0c;和 StackStorm 类似, 可以归类为上层的自动化工具&#xff0c;可以用来触发与之相对应的下层自动化工具&#xff0c;比如 ansible&#xff0c;来更加…

python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...

python环境下使用mysql数据及数据结构和二叉树算法(图)&#xff1a;1 python环境下使用mysql2使用的是 pymysql库3 开始-->创建connection-->获取cursor-->操作-->关闭cursor->关闭connection->结束45 代码框架6 import pymysql.cursors7 ###连接数据库8 con…

大数据工作流_大数据和人工智能时代下的数字化工作流

点击上方“Bentley软件”可以订阅哦本文作者Bentley 软件公司高级技术经理赵顺耐大数据、人工智能以及与之相伴相生的物联网已经成为现代社会的运行方式&#xff0c;信息技术的急速发展&#xff0c;和数据量爆炸式增长&#xff0c;改变了整个社会传统的运行方式。人类与信息技术…

多租户系统技术实现mysql_SaaS “可配置”和“多租户”架构的几种技术实现方式...

1、数据存储方式的选择多租户(Multi-Tenant )&#xff0c;即多个租户共用一个实例&#xff0c;租户的数据既有隔离又有共享&#xff0c;说到底是要解决数据存储的问题。常用的数据存储方式有三种。方案一&#xff1a;独立数据库一个Tenant&#xff0c;一个Database“的数据存储…

全国计算机等级考试题库二级C操作题100套(第15套)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

iOS如何判断当前网络的运营商

2019独角兽企业重金招聘Python工程师标准>>> 在IOS上存在retain屏&#xff0c;经常需要在一些时刻用到高清图&#xff0c;有些时候也要到普通图。 在网络条件很爽的情况下&#xff0c;这当然不在话下。如果咱是iphone用户&#xff0c;又正好用的是移动卡。 如果还用…

Py函数直接传入root是啥意思_Python内部函数——用处何在?

这是一篇译文&#xff0c;原文地址&#xff1a;https://realpython.com/inner-functions-what-are-they-good-for/1. 封装内部函数可以免受函数之外的情况的影响&#xff0c;也就是说&#xff0c;对于全局命名空间而言&#xff0c;它们是隐藏的。下面是一个简单的例子&#xff…

Linux 和 Windows 平台不同的 UCS-2 编码

2019独角兽企业重金招聘Python工程师标准>>> 以下是有关两个平台 UCS-2 编码的潜规则&#xff1a; 1, UCS-2 不等于 UTF-16。 UTF-16 每个字节使用 ASCII 字符范围编码&#xff0c;而 UCS-2 对每个字节的编码可以超出 ASCII 字符范围。UCS-2 和 UTF-16 对每个字符至…

vld检测不输出_输出轴热处理形变超差,找找原因

这里有最实用的技术&#xff0c;点击↑↑关注作者&#xff1a;阚亚威单位&#xff1a;镇江液压股份有限公司来源&#xff1a;《金属加工(热加工)》杂志我公司摆线液压马达输出轴材料主要为20CrMnTi&#xff0c;热处理工艺为渗碳直接淬火低温回火&#xff0c;工艺如图1所示。近期…

java 独占锁_锁分类(独占锁、分拆锁、分离锁、分布式锁)

一、java内存模型提到同步、锁&#xff0c;就必须提到Java的内存模型&#xff0c;为了提高程序的执行效率&#xff0c;java也吸收了传统应用程序的多级缓存体系。在共享内存的多处理器体系架构中&#xff0c;每个处理器都拥有自己的缓存&#xff0c;并且定期地与主内存进行协调…

url模糊匹配优化_企业必备的网站SEO优化解决方案

一、网站优化与调整倡议一个好网站不只要满足阅读者&#xff0c;还要契合搜索引擎规则、满足搜索引擎快照抓取、赋予评级、提升关键词排序等。我们站在用户角度和搜索引擎规则根底上为您提供一套完好的SEO处理计划SEO处理计划SEO倡议大纲&#xff1a;1、目的客户剖析与定位&…