zoukankan      html  css  js  c++  java
  • 『安卓』安卓开发基础--基本控件

    1. Textview

    显示文字,相当于Panel。一般用来文本展示,继承自android.view.View,在android.widget包中。

    <TextView
    
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    //我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id!
    
    //宽度与高度
    android:layout_width="wrap_content"  //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    //wrap_content 控件显示的内容多大,控件就多大
    //match_parent(fill_parent) 填满该控件所在的父容器
    //当然也可以设置成特定的大小,
    
    //文本文字 
    android:text="@string/hello_world" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素
    
    //字体大小
    android:textSize="24sp"  //以sp为单位
    
    //字体颜色
    android:textColor="#0000FF"  //RGB颜色
    
    //字体格式
    android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
    
    //文本显示位置
    android:gravity="center"  //来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等
    
    //是否只在一行内显示全部内容
    android:singleLine="true"  //true或者false,默认为false  
    
    android:background=""
    //控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片哦!
    
    //设置外边距
    android:layout_margin="10dp" 同时设置四个方向的外边距
    //同时可以单独设置某个方向的外边距。
    
    //设置内边距
    android:padding="30dp" 同时设置四个方向的内边距
    //同时可以单独设置某个方向的内边距。
    
    //设置重力方向
    android:gravity="bottom|right" 
    //可以设置四个方向
    
    //设置方向
    android:orientation="horizontal" 
    //可选值:horizontal 横向 / vertical 纵向
    
    
    //相对布局 RelativeLayout:内部的控件以某个其他的控件为参考系,在参考系的某个方位。
    //作为参考系的控件必须有一个名字(id)
    android:id="@+id/text1"
    
    //在名字叫text1的控件的右边
    android:layout_toRightOf="@id/text1"
    //在名字叫text1的控件的下边
    android:layout_below="@id/text1" 
    //在名字叫text1的控件的左边
    android:layout_toLeftOf="@id/text1"
    //在名字叫text1的控件的上边
    android:layout_above="@id/text1" 
    
    //比例划分前提是线性布局,内部元素可以按照比例划分
    //需要设置权重:
    android:layout_weight="2"
    //纵向布局只能分内部控件的高度,横向布局只能分内部控件的宽度。
    //建议给要分比例的宽度或者高度写成0dp。
    

    2. EditText

    输入框,可编辑,可设置软键盘方式。继承自android.widget.TextView,在android.widget包中。
    
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"  //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //文本文字 
    android:text="@string/hello_world" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素
    
    //文本提示内容
    android:hint="hello_world" //android:text和android:hint区别是后者只是提示作用,真正需要输入的时候提示的内容会消失
    
    //字体大小
    android:textSize="24sp"  //以sp为单位
    
    //字体颜色
    android:textColor="#0000FF"  //RGB颜色
    
    //字体格式
    android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
    
    //文本显示位置
    android:gravity="center"  //来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等
    
    //是否只在一行内显示全部内容
    android:singleLine="true"  //true或者false,默认为false
    
    //输入内容设置为password类型
    android:password="true"  //输入的内容会变成······
    
    //输入内容设置为phoneNumber类型
    android:phoneNumber="true"  //只能输入数字
    
    //设定光标为显示/隐藏
    android:cursorVisible = "false" //true或者false,默认为true显示
    
    
    //设置外边距
    android:layout_margin="10dp" 同时设置四个方向的外边距
    //同时可以单独设置某个方向的外边距。
    
    //设置内边距
    android:padding="30dp" 同时设置四个方向的内边距
    //同时可以单独设置某个方向的内边距。
    
    //设置重力方向
    android:gravity="bottom|right" 
    //可以设置四个方向
    
    //设置方向
    android:orientation="horizontal" 
    //可选值:horizontal 横向 / vertical 纵向
    
    
    //相对布局 RelativeLayout:内部的控件以某个其他的控件为参考系,在参考系的某个方位。
    //作为参考系的控件必须有一个名字(id)
    android:id="@+id/text1"
    
    //在名字叫text1的控件的右边
    android:layout_toRightOf="@id/text1"
    //在名字叫text1的控件的下边
    android:layout_below="@id/text1" 
    //在名字叫text1的控件的左边
    android:layout_toLeftOf="@id/text1"
    //在名字叫text1的控件的上边
    android:layout_above="@id/text1" 
    

    在Activity中的简单用法

    public class MainActivity extends Activity {
        //声明一个EditText
        private EditText edittext;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //给当前的活动加载一个布局
            setContentView(R.layout.activity_main);
            //初始化edittext
            edittext=(EditText) findViewById(R.id.edit_text);
        }
    
    ...
    ...
        //在方法中调用给edittext赋值
        edittext.setText("success");
    ...
    ...
    }
    

    3. Button

    <Button
    
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"  //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //按钮上显示的文字 
    android:text="theButton" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素@string/button
    
    //按钮字体大小
    android:textSize="24sp"  //以sp为单位
    
    //字体颜色
    android:textColor="#0000FF"  //RGB颜色
    
    //字体格式
    android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
    
    //是否只在一行内显示全部内容
    android:singleLine="true"  //true或者false,默认为false
    
    
    //设置外边距
    android:layout_margin="10dp" 同时设置四个方向的外边距
    //同时可以单独设置某个方向的外边距。
    
    //设置内边距
    android:padding="30dp" 同时设置四个方向的内边距
    //同时可以单独设置某个方向的内边距。
    
    //设置重力方向
    android:gravity="bottom|right" 
    //可以设置四个方向
    
    
    
    //相对布局 RelativeLayout:内部的控件以某个其他的控件为参考系,在参考系的某个方位。
    //作为参考系的控件必须有一个名字(id)
    android:id="@+id/text1"
    
    //在名字叫text1的控件的右边
    android:layout_toRightOf="@id/text1"
    //在名字叫text1的控件的下边
    android:layout_below="@id/text1" 
    //在名字叫text1的控件的左边
    android:layout_toLeftOf="@id/text1"
    //在名字叫text1的控件的上边
    android:layout_above="@id/text1" 
    

    我们需要在Activity中为Button的点击事件注册一个监听器,以下介绍两种方式来实现按钮监听事件,更多方法可以参考下Android的按钮单击事件及监听器的实现方式,跟JAVA JFrame监听类似。

    1.通过匿名内部类作为事件监听器类,这种方法适用于事件监听器只是临时使用一次,因为大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),这是一种使用最广泛的方法:

    public class MainActivity extends Activity {
        private EditText edittext;
        private Button button;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            edittext=(EditText) findViewById(R.id.edit_text);
            button = (Button) findViewById(R.id.button);
            //为button按钮注册监听器,并通过匿名内部类实现
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                //点击Button会改变edittext的文字为"点击了Button"
                edittext.setText("点击了Button");
                }
            }); 
        }
    }
    

    2.使用实现接口的方式来进行注册,让Activity类实现了OnClickListener事件监听接口,从而可以在该Activity类中直接定义事件处理器方法:onClick(view v),当为某个组件添加该事件监听器对象时,直接使用this作为事件监听器对象即可:

    public class MainActivity extends Activity implements OnClickListener {
        private EditText edittext;
        private Button button;
        private Button button2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            edittext=(EditText) findViewById(R.id.edit_text);
            button = (Button) findViewById(R.id.button);
            button2 = (Button) findViewById(R.id.button2);
            button.setOnClickListener(this);
            button2.setOnClickListener(this);
        }
    
        @Override
        //用switch区分是哪个id
        public void onClick(View v) {
            switch (v.getId()){
            case R.id.button:
                edittext.setText("点击了Button");
                break;
            case R.id.button2:
                edittext.setText("点击了Button2");
                break;
            }
        }
    }
    

    4.ImageButton

    ImageButton继承自ImageView类,与Button之间的最大区别在于ImageButton中没有text属性。ImageButton控件中设置按钮中显示的图片可以通过android:src属性来设置。也可以通过setImageResource(int)来设置。

    <ImageButton
    
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"   //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //此外,可以具体设置高度和宽度显示的像素,不过这样设置如果图片尺寸大于设置的显示的尺寸,则图片是显示不全的,这是可以配合android:scaleType属性。
    android:layout_width="200dp"
    android:layout_height="200dp" 
    
    //把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageButton.
    android:scaleType="fitXY"
    
    //其他的关于android:scaleType的参数解释,也可以参考下面的直观图
    //android:scaleType="center"  在视图中心显示图片,并且不缩放图片
    //android:scaleType="centercrop"  按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度
    //android:scaleType="centerinside"  按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度
    //android:scaleType="fitcenter" 按比例缩放图片到视图的最小边,居中显示
    //android:scaleType="fitend" 按比例缩放图片到视图的最小边,显示在视图的下部分位置
    //android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置
    //android:scaleType="matrix" 用矩阵来绘制
    
    //图片来源,需要将图片复制放到res/drawable文件夹里面,引用的时候不需要写图片的后缀
    android:src ="@drawable/beautiful"> 
    
    //设置外边距
    android:layout_margin="10dp" 同时设置四个方向的外边距
    //同时可以单独设置某个方向的外边距。
    
    //设置内边距
    android:padding="30dp" 同时设置四个方向的内边距
    //同时可以单独设置某个方向的内边距。
    
    //设置重力方向
    android:gravity="bottom|right" 
    //可以设置四个方向
    
    
    
    //相对布局 RelativeLayout:内部的控件以某个其他的控件为参考系,在参考系的某个方位。
    //作为参考系的控件必须有一个名字(id)
    android:id="@+id/text1"
    
    //在名字叫text1的控件的右边
    android:layout_toRightOf="@id/text1"
    //在名字叫text1的控件的下边
    android:layout_below="@id/text1" 
    //在名字叫text1的控件的左边
    android:layout_toLeftOf="@id/text1"
    //在名字叫text1的控件的上边
    android:layout_above="@id/text1" 
    

    5.RadioGroup和RadioButton

    RadioGroup 多选
    RadioButton 单选选项

     <RadioGroup>
            android:id="@+id/RG"  //跟前文一样的ID
            android:layout_width="264dp" //宽跟上面一样
            android:layout_height="202dp" //高跟上面一样
            android:layout_marginTop="16dp"
     		android:orientation="horizontal" //设置方向
    		//可选值:horizontal 横向 / vertical 纵向
    
            <RadioButton
                android:id="@+id/RB1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/radiobutton1" //选项文字
    		/>
     </RadioGroup>
    

    6.CheckBox

    复选框

    <CheckBox 
    	 android:id="@+id/RB1"
    	 android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/radiobutton1" //选项文字
         android:checked="ture" //是否默认选中
    

    7.ImageView

    ImageView控件负责显示图片,其图片的来源可以是在资源文件中的id,也可以是Drawable对象或者位图对象。还可以是Content Provider的URI。

    <ImageView
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"   //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //此外,可以具体设置高度和宽度显示的像素,不过这样设置如果图片尺寸大于设置的显示的尺寸,则图片是显示不全的,这是可以配合android:scaleType属性。
    android:layout_width="200dp"
    android:layout_height="200dp" 
    
    //把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageButton.
    android:scaleType="fitXY"
    
    //其他的关于android:scaleType的参数解释,也可以参考下面的直观图
    //android:scaleType="center"  在视图中心显示图片,并且不缩放图片
    //android:scaleType="centercrop"  按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度
    //android:scaleType="centerinside"  按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度
    //android:scaleType="fitcenter" 按比例缩放图片到视图的最小边,居中显示
    //android:scaleType="fitend" 按比例缩放图片到视图的最小边,显示在视图的下部分位置
    //android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置
    //android:scaleType="matrix" 用矩阵来绘制
    
    //图片来源,需要将图片复制放到res/drawable文件夹里面,引用的时候不需要写图片的后缀
    android:src ="@drawable/beautiful">  
    
    
    //设置外边距
    android:layout_margin="10dp" 同时设置四个方向的外边距
    //同时可以单独设置某个方向的外边距。
    
    //设置内边距
    android:padding="30dp" 同时设置四个方向的内边距
    //同时可以单独设置某个方向的内边距。
    
    //设置重力方向
    android:gravity="bottom|right" 
    //可以设置四个方向
    
    //设置方向
    android:orientation="horizontal" 
    //可选值:horizontal 横向 / vertical 纵向
    
    
    //相对布局 RelativeLayout:内部的控件以某个其他的控件为参考系,在参考系的某个方位。
    //作为参考系的控件必须有一个名字(id)
    android:id="@+id/text1"
    
    //在名字叫text1的控件的右边
    android:layout_toRightOf="@id/text1"
    //在名字叫text1的控件的下边
    android:layout_below="@id/text1" 
    //在名字叫text1的控件的左边
    android:layout_toLeftOf="@id/text1"
    //在名字叫text1的控件的上边
    android:layout_above="@id/text1" 
    

    7.ProgressBar

    ProgressBar 用于在界面上显示一个进度条,体现程序运行时正在加载数据。

    在布局文件中使用:

    <ProgressBar 
        android:id="@+id/pb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        //默认是圆形进度条,可以知道样式设置为水平进度条
        style="?android:attr/progressBarStyleHorizontal"/>
        //指定成水平进度条后,我们还可以通过 android:max属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度
        android:max="100"
    

    借助控件可见性,实现数据加载完成时消失。
    借助 setVisibility()方法,可以传入 View.VISIBLEView.INVISIBLEView.GONE 三种值。

    下面实现点击一下按钮让进度条消失,再点击一下按钮让进度条出现的这种效果,这里只给出按钮监听的代码:

    button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //通过 getVisibility()方法来判断 ProgressBar 是否可见
                    if (progressBar.getVisibility() == View.GONE) {
                        progressBar.setVisibility(View.VISIBLE);
                    } else {
                        progressBar.setVisibility(View.GONE);
                    }
                }
            });
    

    参考博客:Android常用控件介绍及使用

  • 相关阅读:
    Project Euler 28 Number spiral diagonals
    nrm是什么?以及nrm的安装与命令
    asar 如何解密加密?electron 的 asar 的具体用法
    ARDUINO 积木式编辑器整理
    关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比
    webkit、cef、nwjs、electron、 miniblink浏览器内核优缺点
    cef开启摄像头和录音
    连接AWS Ubuntu服务器
    使用cnpm install提示package not found
    centos7 升级内核
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/13499487.html
Copyright © 2011-2022 走看看