Android常用UI控件

        Android中所有的可视化组件都是继承自View类,通常把它们称之为视图。视图也经常被称为控件或者小组件。    ViewGroup类继承自View类,是对View类的扩展,它用来包含、管理多个视图。用户界面UI(User Interface)就是由一个个具体的View和ViewGroup构成的一颗视图树

 在开始前,先要介绍下几个单位:dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关。px: pixels(像素). 不同设备显示效果相同。sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

1、TextView(文字显示)

  • id:为组件设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,或者通过R.id.得到组件。
  • layout_width:组件的宽度,一般写:wrap_content或者match_parent(fill_parent),前者是控件显示的内容多大,控件就多大,而后者会填满该控件所在的父容器;当然也可以设置成特定的大小。
  • layout_height:组件的高度,内容和layout_width相同。
  • gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片。
  • text:设置显示的文本内容,一般我们是把字符串写到string.xml文件中,然后通过@String/xxx取得对应的字符串内容的。
  • textColor:设置字体颜色,同上,通过colors.xml资源来引用!
  • textStyle:设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)
  • textSize:字体大小,单位一般是用sp!
  • background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片哦!
  • singleLine:自动换行。

 带图片(drawableXxx)的TextView:设置图片的核心其实就是:drawableXxx;可以设置四个方向的图片: drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右)。 另外,你也可以使用drawablePadding来设置图片与文字间的间距。

2、ExitView(文本输入框)

  • android:hint="默认提示文本" :提示文本
  • android:textColorHint="#95A1AA":提示文本颜色
  • android:selectAllOnFocus="true":获取焦点
  • android:inputType="text":输入类型(文本、数字、密码)
  • android:inputType="phone"//拨号键盘

  • android:inputType="datetime"

  • android:inputType="date"//日期键盘

  • android:inputType="time"//时间键盘

  • android:singleLine="true":多行输入

  • android:marginXXX = "5dp 间隔多少

edit.requestFocus(); //请求获取焦点
edit.clearFocus(); //清除焦点

3、Button按钮:

  • drawable:引用的Drawable位图,我们可以把他放到最前面,就表示组件的正常状态~
  • state_focused:是否获得焦点
  • state_window_focused:是否获得窗口焦点
  • state_enabled:控件是否可用
  • state_checkable:控件可否被勾选,eg:checkbox
  • state_checked:控件是否被勾选
  • state_selected:控件是否被选择,针对有滚轮的情况
  • state_pressed:控件是否被按下
  • state_active:控件是否处于活动状态,eg:slidingTab
  • state_single:控件包含多个子控件时,确定是否只显示一个子控件
  • state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态
  • state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态
  • state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态

4、ImageView

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

background通常指的都是背景,而src指的是内容,当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸,而使用background填入图片,则是会根据ImageView给定的宽度来进行拉伸

android:scaleType用于设置显示的图片如何缩放或者移动以适应ImageView的大小 Java代码中可以通过imageView.setScaleType(ImageView.ScaleType.CENTER);来设置~ 可选值如下:

  • fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,但是图片的横纵比可能会发生改变
  • fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,缩放完成后将图片放在ImageView的左上角
  • fitCenter:同上,缩放后放于中间;
  • fitEnd:同上,缩放后放于右下角;
  • center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
  • centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全
  • centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片
  • matrix:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 原图超过ImageView的部分作裁剪处理

 5、RadioButton(单选按钮)

需要把RadioButton放到RadioGroup按钮组中,从而实现 单选功能,为外层RadioGroup设置orientation属性然后设置RadioButton的排列方式,是竖直还是水平。要为每个RadioButton添加一个id,不然单选功能会生效!!!

  • getChildCount( )获得按钮组中的单选按钮的数目;
  • getChinldAt(i):根据索引值获取我们的单选按钮
  • isChecked( ):判断按钮是否选中

6、CheckBox(复选框)

可以同时选中多个选项,至于获得选中的值,同样有两种方式: 1.为每个CheckBox添加事件:setOnCheckedChangeListener 2.弄一个按钮,在点击后,对每个checkbox进行判断:isChecked();

7、Switch(开关)

  • android:showText:设置on/off的时候是否显示文字,boolean
  • android:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,boolean
  • android:switchMinWidth:设置开关的最小宽度
  • android:switchPadding:设置滑块内文字的间隔
  • android:switchTextAppearance:设置开关的文字外观,暂时没发现有什么用...
  • android:textOff:按钮没有被选中时显示的文字
  • android:textOn:按钮被选中时显示的文字
  • android:textStyle:文字风格,粗体,斜体写划线那些
  • android:track:底部的图片
  • android:thumb:滑块的图片

 设置自定义的switch开关代码示例

1、新建switch_selected_track.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size android:height="40dp" />
    <corners android:radius="20dp" />
    <solid android:color="#00C653" />
</shape>

2、新建switch_unselected_track.xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <size android:height="40dp"/>
    <corners android:radius="20dp"/>
    <solid android:color="#D9D9D9" />
</shape>

3、新建switch_track.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/switch_selected_track" android:state_checked="true" />
    <item android:drawable="@drawable/switch_unselected_track" />
</selector>

4、新建switch_thumb.xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <!-- 滑动块的宽高 -->
    <size
        android:width="40dp"
        android:height="40dp" />
    <solid android:color="#FFFFFF" />
    <!-- 透明的描边-->
    <stroke
        android:width="5dp"
        android:color="@android:color/transparent" />
</shape>

5、使用组件:

<Switch
       android:id="@+id/light_switch"
       android:layout_width="140dp"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       android:checked="@{data.lightData.state}"
       android:switchMinWidth="40dp"
       android:text="@string/lightswitch"
       android:thumb="@drawable/switch_thumb"
       android:track="@drawable/switch_track" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值