安卓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 udp 大文件_Python:通过UDP发送大对象

我是套接字编程的新手&#xff0c;最近为它挑选了Python。我有几个问题&#xff0c;我似乎无法找到明确的答案。Python&#xff1a;通过UDP发送大对象我正在研究通过UDP发送数据&#xff0c;并写了一个简单的python脚本来做到这一点。可以很好地发送小对象(准确地说是小腌制对象…

Flask入门系列(转载)

一、入门系列&#xff1a; Flask入门系列(一)–Hello World 项目开发中&#xff0c;经常要写一些小系统来辅助&#xff0c;比如监控系统&#xff0c;配置系统等等。用传统的Java写&#xff0c;太笨重了&#xff0c;连PHP都嫌麻烦。一直在寻找一个轻量级的后台框架&#xff0c;学…

iphone3G恢复到3.1.2遇到的问题

1.报错1015 2.进入DFU模式&#xff0c;刷到下载数据停止不动。 3.进入菠萝&#xff0c;进度条走到最后停止不动。 4.红雪走到waiting for reboot停止不动。 针对上述问题&#xff1a; 首先&#xff0c;要找到完全对应手机系统原版本的固件。然后&#xff0c;红雪进入DFU模式刷机…

用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…

python 列表自定义排序_自定义排序的Python列表

我有一个dicts列表: ldicts = [{name: 120-150}, {name: 90-120}, {name: 150-180}, {name: >= 180}, {name: <90}, {name: total}] 我想按值升序对其进行排序,以便输出如下: sortedldicts = [{name: total}, {name: <90}, {name: 90-120},{name: 120-150}, {name: …

HTML DOM知识点补充:

DOM Console 控制台对象提供了浏览器的debug的方法支持。 常用的&#xff1a;console.log()。 ⚠️coffeescript中&#xff0c;这个方法不加括号。 DOM Document 当一个HTML document加载到浏览器上&#xff0c;它就成为了一个document object。 它是root node 提供了大量docum…

python汇率编程_【菜鸟学Python】案例一:汇率换算

汇率换算V1.0 案例描述&#xff1a; 设计一个汇率换算器程序&#xff0c;其功能是将外币换算成人民币&#xff0c;或者相反 案例分析&#xff1a; 分析问题&#xff1a;分析问题的计算部分&#xff1b; 确定问题&#xff1a;将问题划分为输入、处理及输出部分&#xff1b; 设计…

2013年全球最佳工作

&#xfeff;&#xfeff;2013年即将到来&#xff0c;在新的一年中软件开发人士将继续保持良好的发展态势&#xff0c;通过信息技术及分析业务为企业带来竞争优势。系统分析师、网络/系统管理员、网络架构师以及数据库管理员也纷纷名列榜单前十五位。硅谷与华盛顿特区地铁体系则…

安卓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中总是一…

python十种日期格式_Python中最常用的日期时间格式

在日常开发的时候&#xff0c;我们经常会遇到时间处理的问题&#xff0c;代码示例爬虫过来的时间处理&#xff0c;代码示例对库内的数据进行时间维度的统计等。虽然是个很简单的东西&#xff0c;但每次用的时候都难免要再查一查&#xff0c;其实这就是基础不夯实的表现。趁着今…

精通QTP-自动化测试技术领航

精通QTP-自动化测试技术领航

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

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

python随机数比大小_1到范围内的随机数系统最大大小总是1模2^10

我试图通过使用频率测试、运行测试和卡平方检验来找到Python(2.7.10)中可用的prng的统计特性。在为了进行频率测试&#xff0c;我需要将生成的随机数转换为其二进制表示形式&#xff0c;然后计算1和{}的分布。我在python控制台上试验随机数的二进制表示&#xff0c;并观察到这种…

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

第11套&#xff1a; 给定程序中&#xff0c;函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后&#xff0c;从头至尾结点数据域依次为: 10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正…

实现 IE6 支持 position fixed 的 CSS 属性

众所周知 IE6 不支持 position:fixed &#xff0c;这个 bug 与 IE6 的双倍 margin 和不支持 png 透明等 bug 一样臭名昭著。 如何让 position:fixed 在 IE6 中工作的&#xff1f; 本文所使用的技巧是用了一条 Internet Explorer 的 CSS 表达式 (expression) 。你不可以直接使用…

测试百解

1、问&#xff1a;你在测试中发现了一个bug&#xff0c;但是开发经理认为这不是一个bug&#xff0c;你应该怎样解决&#xff1f; 首先&#xff0c;将问题提交到缺陷管理库里面进行备案。 然后&#xff0c;要获取判断的依据和标准&#xff1a; 根据需求说明书、产品说明、设计文…

python中re.split_Python: str.split()和re.split()的区别

str.split() 单一分隔符&#xff0c;使用str.split()即可 str.split不支持正则及多个切割符号&#xff0c;不感知空格的数量 re.split() 多个分隔符&#xff0c;复杂的分隔情况&#xff0c;使用re.split 原型&#xff1a; re.split(pattern, string, maxsplit0) 通过正则表达式…

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

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