摘自:安卓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等等,打几个关键字然后回车自动补全.