Android Studio开发学习(二)——TextView

一、前提

之前了解了两种布局结构,现在来学习一下如何在布局文件中添加UI组件

二、目标

TextView

三、内容

TextView文本框

常用的表现形式

(1)文字大小和颜色

(2)显示不下时使用的......

(3)文字后加图片

(4)中划线和下划线

(5)跑马灯

(6)带阴影效果

1、文字大小和颜色

这是最基本的一些属性,设置起来也非常的简单,android:text=" "其中填入文字,android:textColor=" "其中使用颜色,用‘#’字开头后跟颜色的十六进制#000000表示黑色,#FFFFFF表示白色,都是通过三原色R(red)G(green)B(blue)进行配比的;android:textSize=" "其中设置字体的大小,单位为sp,是专门的字体单位

<TextView
        android:id="@+id/textview1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nothing is impossible!"
        android:textColor="#000000"
        android:textSize="30sp"
/>

2、显示不下时的....

我们都知道,手机的屏幕是有限的,当一段文字过于长时往往会在屏幕外侧无法显示,或者一篇篇幅很长的文章在一个有限的文本框中总会隐藏很多东西,这时我们就可以用...来表示剩余的文字

 <TextView
        android:id="@+id/textview2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nothing is impossible!Nothing is impossible!"
        android:textColor="#000000"
        android:textSize="30sp"

        android:maxLines="1"
        android:ellipsize="end"
        
/>

其中我们可以看到,我设置了最大行数android:maxLines=“n”,这个意思就是你设置的n是多少,他就最多显示多少行,我设置了1,也就是说此段代码中显示的文字最多在一行显示,当然有max也就有min,android:minLines=“n”,这个意思是你设置的n是多少,当你输入的文本所占的行数多于n时,它就会跟着改变,比如我设置了1,但文本需要两行,于是文本行数就变为2,;通俗理解就是max是不超过n行,min是最少有n行;

当然什么时候用max什么时候用min呢,我觉得大家都应该浏览过QQ空间,其中如果一个人发表了一长段话,总会提示大家查看全文阅读,因为每个人的好友有很多,如果一个人发表了很长的文章其实是很占地方的,所以在总的好友动态中只会显示一部分使用maxLines,其余的内容我们需要点开后才能看见,这时不管多长的文字我们都可以看到,就可以用到我们的minLines方法

                                                       

android:ellipsize=""表示省略号的位置,一般情况见得最多的就是设置在行末,当然也可以在行首和行中,行末使用end,行中使用middle,行首使用start,下图就是结果,我设置在行末表示

3、文字后加图片

<TextView
        android:id="@+id/textview3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nothing is impossible!"
        android:textColor="#000000"
        android:textSize="30sp"
        
        android:drawableRight="@mipmap/ic_launcher"
        android:drawablePadding="10dp"
/>

这个就很好理解了,就是简单的加图片进去,上下左右也由你来设置,至于图片的位置,因人而异,我设置在右部,用了一张系统自带的图片

这样做就不用多设置一个图片组件用来在一行显示,也不用布局,方便很多,只用在内部进行调整就好

4、中划线和下划线

这个设计相对于之前的一些较有难度,因为涉及到了java代码

首先创建两个TextView

<TextView
        android:id="@+id/textview4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nothing is impossible!"
        android:textColor="#000000"
        android:textSize="30sp"
        />

    <TextView
        android:id="@+id/textview5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nothing is impossible!"
        android:textColor="#000000"
        android:textSize="30sp"
        android:layout_marginTop="15dp"
        />

其次在MainActivity中编写,运行后才能看到结果

public class TextViewActivity extends AppCompatActivity {
   
    private TextView textView1,textView2,textView3;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);
        
        textView1= (TextView) findViewById(R.id.textview4);
        textView1.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//中划线
        textView1.getPaint().setAntiAlias(true);//去除锯齿

        textView2= (TextView) findViewById(R.id.textview5);
        textView2.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
        textView2.getPaint().setAntiAlias(true);//去除锯齿

    }
}

在java我们看到,我们要先获取到之前创建的TextView,所以之前我分别给两个文本框都定义了id属性,在java代码中我们使用findViewById()来获取id,findViewById对象返回的是一个View,所以我们需要强制类型转换。

getPaint()是用来绘制的,颜色大小字体什么的都可以,我们主要调用了它的setFlags()方法,用来设置标志,里面的形式有很多,在此不一一列举,就运用了中划线和下划线。

最后去除锯齿这一步目的就是为了使线条更平滑,用了getPaint()方法的setAntiAlias()方法,意思就是是否设置抗锯齿功能,true为是

中划线可以用来表示删除一些东西或者app展示什么东西降价,可以划掉上一个价钱贴上新的价钱,下划线就是个重点标记

5、跑马灯

跑马灯就相当于以前公交车上的电子显示屏,下一站什么什么。一直划过去播放

    <TextView
        android:id="@+id/textview7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:text="Nothing is impossible!Nothing is impossible!Nothing is impossible!"
        android:textSize="30sp"
        
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"
    />

设置单行显示,此处的ellipsize里面的值设置成立marquee,意思是跑马灯形式;marqueeRepeatLimit表示重复字幕限制,里面就一个属性就是一直重复跑马灯形式;focusable与focusableInTouchMode都是用来焦点聚焦的,不同的是,第一个主要针对在键盘下操作的情况,如果设置为true,则键盘上下左右选中,焦点会随之移动,第二个针对触屏情况下的,也就是我们点击屏幕的上的某个控件时,不要立即执行相应的点击逻辑,而是先显示焦点(即控件被选中),再点击才执行逻辑。效果请各自实现。

6、阴影效果

更美观好看一些,显得有立体感,怎样去用也是因人而异,这段代码需要运行后才能实现效果

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="带阴影的TextView"
        android:textColor="#4A4AFF"
        android:textSize="30sp"
        
        android:shadowColor="#F9F900"
        android:shadowDx="10.0"
        android:shadowDy="10.0"
        android:shadowRadius="3.0"
        />

其中涉及到的属性包括

android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用

android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0,值越大越模糊

android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置,阴影部分向右移动

android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置,阴影部分向下移动

四、总结

这就是关于TextView组件比较常用的一些属性,其余的一些属性如果再遇到会继续补充

发布了16 篇原创文章 · 获赞 3 · 访问量 1096

猜你喜欢

转载自blog.csdn.net/qq_41890177/article/details/105200852
今日推荐