android开发中TextView和EditText以及其他输入输出控件的使用

android开发中TextView和EditText以及其他输入输出控件的使用

当我们学习android开发的时候,应该需要了解android中输出输出控件的使用,分类,作用,只有更好的了解这些控件,我们才能设计出用户需要的界面,才能完成某些要求的功能,本次博客,学长主要给学弟学妹们讲解如何使用android中常用的输出输出控件!

一、组件和控件

1.组件

一些符合某种规范的类组合在一起就构成的组件。组件可以提供一些特定的功能。

2.控件:可视化的组件
3.view与viewGroup
1)、Android的UI界面都是由view和ViewGroup及其派生类组合而成的。
2)、View是所有UI组件的基类,ViewGroup是容纳这些组件的容器。其本身也是从View中派生出来的。

View直接派生的子类有:
AnalogClock,ImageView,KeyboardView,ProgressBar, SurfaceView, TextVie,w.ViewGroup.ViewStub
ViewGroup派生出的子类有:
AbsoluteLayout,AdapterView,FragmentBreadCrumbs.FrameLayout,LinearLayout,RelativeLayout, SlidingDrawer

二、TextView的使用

1、TextView的颜色,字体,字号的设置

在这里插入图片描述在这里插入图片描述

String text1="嗨! 我的朋友们”;
tv_ friend1.setText(text1) ;
tv_ friend1.setTextSize(45);
tv_ friend1.setTextColor(Color.rgb(255, 0, 0)) ;
2、利用SpannableString打造绚丽多彩的文本显示效果

SpannableString其实和String一样,都是一种字符串类型,同样TextView也可以直接设置SpannableString作为显示文本,不同的是SpannableString可以通过使用其方法setSpan方法实现字符串各种形式风格的显示,重要的是可以指定设置的区间,也就是为字符串指定下标区间内的子字符串设置格式。
setSpan(Object what, int start, int end, int flags)方法需要用户输入四个参数,what表示设置的格式是什么,可以是前景色、背景色也可以是可点击的文本等等,start表示需要设置格式的子字符串的起始下标,同理end表示终了下标,flags属性就有意思了,共有四种属性:
1)、Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
2)、Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
3)、Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标
4)、Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标
下面我们一一解读几种Span常用的格式:

1)、ForegroundColorSpan,设置前景色

在这里插入图片描述

SpannableString spannableString =new SpannableString(text);
ForegroundColorSpan forcolor=new ForegroundColorSpan(Color.parseColor(" #0099EE"));
sparnableString.setSpan(forcolor,0,2,Spanned.SPAN_ EXCLUSIVE_EXCLUSIVE);
tv_friend1.setText(spannableString);
tv_friend1.setTextSize(45) ;
2)、BackgroundColorSpan,设置背景色

在这里插入图片描述

BackgroundColorSpan back=new BackgroundColorSpan(Color.parseColor("#ff0000* ));
spannableString.setSpan(back,2, text.length(), Spanned. SPAN_EXCLUSIVE_ EXCLUSIVE);
3)、RelativeSizeSpan,设置文字相对大小。

在这里插入图片描述

RelativeSizeSpan relativeSizeSpan=new RelativeSizeSpan(1.5f);
spannableString.setSpan(relativeSizeSpan,0, 2, Sparnned. SPAN_EXCLUSIVE_ EXCLUSIVE);
4)、SuperscriptSpan设置上标

在这里插入图片描述

SuperscriptSpan superscriptSpan=new SuperscriptSpan();
sparnableString.setSpan(superscriptSpan,6, text.length(), Spanned.SPAN_ EXCLUSIVE_ EXCLUSIVE);
5)、StyleSpan设置粗体和斜体

在这里插入图片描述

StyleSpan styleSpan-new StyleSpan(Typeface. BOLD);
Sty1eSpan sty1eSpan1=new Sty1eSpan(Typeface. ITALIC);
spannableString.setSpan(styleSpan,0,2, Spanned.SPAN_ EXCLUSIVE_EXCLUSIVE);
spannableString.setSpan(styleSpan1, 0, 2,Spanned.SPAN_ EXCLUSIVE_EXCLUSIVE) ;
6)、ImageSpan 设置图形

在这里插入图片描述

SpannableString leftString=new SpannableString("1eft");
ImageSpan imageSpan=new mageSpan(BitmapFactory.decodeResource(getResourcesO, R. drawable.edi t)) ;
leftString.setSpan(imageSpan, 0, 4, Spanned.SPAN_ EXCLUSIVE_EXCLUSIVE); 
SparnableStringri ghtString new SpannableString("right");
Drawable d=getResources(). getDrawable(R. drawable. feed) ;
d.setBounds(0, 0, d. getIntrinsicWidth(),d.getIntrinsicHeight());
ImageSpan imageSpanl =new ImageSpan(d) :
rightString.setSpan(imageSpanl, 0, 5,Spanned.SPAN_ EXCLUSIVE_EXCLUSIVE);
tv_1.append(leftString) ;
tv_1.append("编辑文档");
tv_1.append(rightString) :

修改位图的大小
Matrix matrix=new Matrix();
matrix.postScale(0.5f,0.5f);
Bitmap mb=Bitmap.createBitmap(b,0,0,b.getWidth(),b.getHeight(),matrix,true);

采用drawable
Drawable drawable=getResources().getDrawable(R.drawable.avatar5);
drawable.setBounds(0,0,drawable.getIntrinsicWidth()/4,drawable.getIntrinsicHeight()/4);

7)、ClickableSpan设置文本的点击事件

(控件加上setMovementMethod(LinkMovementMethod.getInstance());)
在这里插入图片描述在这里插入图片描述

三、EditText使用

1、EditText是具有TextView的所有功能,还具有输入功能。

例:实现表情图输入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、实现特殊字符输入限制和校验功能

在这里插入图片描述

1)、设计一个按钮点击时,做输入框的空验证

在这里插入图片描述

2)、利用TextUtils.isEmpty来判断是否为空

在这里插入图片描述

3)、利用正则表达是判读是否为数字

在这里插入图片描述
在这里插入图片描述

3、例: 实现一个提示输入场景

方法如下:

1).xml配置一个AutoCompleteTextView的控件

在这里插入图片描述在这里插入图片描述

2)、新建一个textView的layout的xml

在这里插入图片描述

3)、java代码

在这里插入图片描述

注意:如果实现动态添加提示语? 如下所示:

在这里插入图片描述
以上就是本次博客的全部内容啦,如果对大家有用的话可以仔细看看,希望对大家有所帮助,有不懂的欢迎留言讨论哦,你们的评论是我前进的动力!

发布了24 篇原创文章 · 获赞 12 · 访问量 4085

猜你喜欢

转载自blog.csdn.net/qq_42451251/article/details/104049754