Android Studio 学习笔记(三):简单控件及实例

本文针对经常使用控件(Textview、Button、EditText、RadioButton、CheckBox、ImageView)进行简单说明html

本文针对经常使用控件(Textview、Button、EditText、RadioButton、CheckBox、ImageView)进行简单说明java

控件、组件、插件概念区分

说到控件,就不得不区分一些概念。android

控件(Control):编程中用到的部件编程

组件(Component):软件的组成部分网络

插件(plugin): 应用程序中已经预留接口的组件app

下面举些例子ide

Android的系统控件:布局

  • Textview
  • ImageView
  • Button
  • ...

Android的四大组件字体

  • Activity
  • Service
  • Content Provider
  • Broadcast Receiver

网页上经常使用插件莫过于flash了,用于视频加载播放。gradle

控件说明

和布局相似控件至少须要设置的属性为android:layout_width和android:layout_height,分别控制布局的宽度和高度,通常填入的参数为match_parent和wrap_content,也可填入具体尺寸 。

出于实际须要,android:id也必不可少,id属性只能接受资源类型的值,也就是必须以@开头的值,在R中用一个int类型的值来表示。好比@+id/xyz,在R.java中表示为int xyz = value,其中value是一个十六进制数。

值得说明的是@id和@+id的区别

  • @+id,就是在R.java文件里新增一个id名称,若是以前已经存在相同的id名称,那么会覆盖以前的名称。
  • @id,则是直接引用R.java文件的存在的id资源,若是不存在,会编译报错。

Textview 显示文本框

布局文件中经常使用的几个单位

  • dp(dip): device independent pixels(设备独立像素)不一样设备有不一样的显示效果
  • px: pixels(像素): 不一样设备显示效果相同
  • sp: scaled pixels(放大像素): 主要用于字体显示
  • pt:(point):是一个标准的长度单位,1pt=1/72英寸,不经常使用

可实现的经常使用功能:

  • 能够设置四个方向的图片: drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右)

  • 当文字中出现了URL,E-Mail,电话号码的时候,咱们能够经过设置android:autoLink属性;当咱们点击对应部分的文字,便可跳转至某默认APP,好比一串号码,点击后跳转至拨号界面!

  • 文字效果,如跑马灯,阴影等等

  • android:ellipsize="end" 内容超过屏幕宽度,尾部显示省略号

  • 实现跑马灯效果(文字循环滚动)

    android:singleLine="true" //单行显示
    android:ellipsize="marquee" //文字循环滚动
    android:marqueeRepeatLimit="marquee_forever" //设定为永久循环
    android:focusable="true" //获取键盘焦点
    android:focusableInTouchMode="true" //获取触屏焦点

    简单介绍下这里的焦点,获取焦点的控件就是当前能够执行操做的控件。举个例子,当咱们点击文本框时,会出现光标闪烁,在光标处能够输入文字,这里的文本框就获取了焦点,单行显示若是用android:maxLines="1"会报错。

    这样的设计存在一个缺陷——当前界面的其余控件都没法获取焦点了,也就没法在本界面上进行其余操做,仅仅起到演示效果,并且若同时设置多个跑马灯只有第一个会有响应。(还遇到一个坑,就是在个人红米真机上显示不出跑马灯效果,有待填坑)因此须要设计无焦点的跑马灯

动图的下方图标是水印

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

Button 按钮

Button通常须要实现的效果是按下后发生某种响应,跳转。 Button是TextView的子类,Textview也可像Button同样设置点击事件

点击效果的原理是:按下前为浅色,按下后变为深色,固然颜色选得恰当的话效果会更好。一种作法是在android:background中引用Drawable资源文件,设置< item android:state_pressed="xx">中xx分别为true和false的状况下,按钮状态的改变

按钮水波效果实现可见https://www.runoob.com/w3cnote/android-tutorial-button-imagebutton.html

动图中,若是未设置按钮状态改变,看不出按钮点击效果,因而我加入了点击时带圆点提示

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

EditText 可输入文本框

经常使用的实用属性以下

  • android:hint 输入时输入框的提示文本
  • android:inputType 指定输入类型,若是指定为phone类型,手机键盘会自动弹出数字键盘,同时输入也只接受数字类型。
  • android:maxLines="1"  指定输入框的最大行数为1,防止格式变形

demo只演示了数字输入,能够看到号码不接受数字外的其余类型输入

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

RadioButton 单选按钮

使用方法以下

好比出一道单选题,选项的集合就是布局文件中的

为了方便起见,一般在用户未选时设置默认选中的选项,在该选项中设置属性android:checked="true"

选项默认的样式是在文本前加点表示选中,也能够采用文本框对纯色填充的样式。则须要在android:background中引用Drawable资源文件,设置< item android:state_checked="xx">中xx分别为true和false的状况下,按钮状态的改变。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

CheckBox 复选框

至关于多选题,区别RadioButton的地方在于,不需设置一个选项集合,而是

题目可由TextView显示,每一个选项由一个

选项的按钮样式可经过引用Drawable资源文件,在Drawable资源文件中进行修改设置。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

ImageView 图像视图

ImageView有两个能够设置图片的属性,分别是:src和background

  • background一般指的都是背景,而src指的是内容!!

  • 当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸

而使用background填入图片,则是会根据ImageView给定的宽度来进行拉伸

图片缩放类型可由两种控制方式设置:

  • 布局文件中设置 android:scaleType 属性
  • Java代码中设置ImageView.setScaleType()方法

ImageView源码中暂时没有实现加载网络图片的方法,固然在网上有不少种方法,这里介绍其中一种:使用第三方的库Glide加载网络图片。

按照天哥的视频进行配置 build.gradle,一开始报错了,说一下修改遇到的坑:

  • 须要修改的build.gradle是在app目录下的,不是另外一个
  • 当前版本使用的是androidx,所以会找不到android.v7包,改为当前版本下的appcompat便可,其他同理
  • 当前版本的compile都建议修改成implement

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

参考资料

  1. 组件、控件和插件的区别

    https://blog.csdn.net/haiross/article/details/22662635

  2. TextView、ImageView详解|菜鸟教程

    https://www.runoob.com/w3cnote/android-tutorial-textview.htmlhttps://www.runoob.com/w3cnote/android-tutorial-imageview.html

  3. Android 基础之简单控件

    https://www.jianshu.com/p/a32f639bc756

  4. @id和@+id的区别

    http://www.javashuo.com/article/p-vrxtwioo-dw.html

  5. 【天哥】Android开发视频教程最新版 Android Studio开发

    https://www.bilibili.com/video/av38409964

  6. Android 获取焦点

    https://zhidao.baidu.com/question/455464125905865485.html

  7. Android之跑马灯详解

    https://www.jianshu.com/p/67e74148a122

相关文章
相关标签/搜索