Android studio APP开发 第五章 常用控件讲解

常用控件

控件都是在layout文件目录下的.xml文件里添加。
layout界面

TextView

代码示例

<TextView
        android:id="@+id/text_first"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="传值显示"
        android:textSize="@dimen/text_size_first"
        android:textColor="@color/text_color_first"
        />

代码解释

id 即一个控件专属的名字,Activity.java文件通过id找到控件,并对控件进行操作,以实现某些功能。 Activity.java文件中找到button的代码如下(此处以设置点击事件为例):

findViewById(R.id.button_first).setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,FirstActivity.class);
                intent.putExtra(TITLE,title);
                startActivityForResult(intent,REQUEST_CODE);
            }
        });

Layout_width 和 Layout_height 为TextView的宽和高。 每一个控件都可以设置。wrap_content 为自适应,自动适应text的大小。
android:text=“传值显示” 即设置TextView所要展示的信息。
textSizetextColor 为设置TextView文本的大小和颜色。

这些是每一个控件都可以设置的属性,属于通用属性。

Button

Button 和TextView 几乎一样,是TextView的特殊情况,被人赋予的button的功能后于TextView区分开来。
代码如下:

<Button
        android:id="@+id/button_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击返回"/>

EditText

EditText 即可编辑的控件,可以用来输入文本,用户登录时输入账户密码输入手机号输入名字邮箱账号等。

<EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name" />

    <EditText
        android:id="@+id/editText4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="phone" />

    <EditText
        android:id="@+id/editText5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textEmailAddress" />

四个edittext分别为输入密码,名字,电话号码,邮箱地址。输入类型被限制关键代码在于inputType。 也可以自己写一个edittext,输入类型不限。效果如图(可自己运行后调试):
edittext效果图

addTextChangedListener 设置文本改变监听器

即针对EditText里的内容改变时设置的一些功能。比如微博在输入内容超过140字时提示内容已超过限制。
代码如下:

 EditText editText = (EditText) findViewById(R.id.editText4);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                Log.i(TAG, "s:" + s.toString() + ",start:" + start + ",count:" + count + ",after:" + after);
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                Log.i(TAG, "s:" + s.toString() + ",start:" + start + ",count:" + count + ",before:" + before);
            }

            @Override
            public void afterTextChanged(Editable s) {

                if (s.toString().length() > 5) {
                    Toast.makeText(MainActivity.this, "啊,救命,超过5个字啦", Toast.LENGTH_LONG).show();
                }
                Log.i(TAG, "s:" + s.toString());
            }
        });

分别为三个方法,beforeTextChanged(Text改变前) onTextChanged(Text改变时) afterTextChanged(Text改变后)Log 标记每一次改变。

ImagView

用来显示图片的控件。
代码如下:

<ImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:background="@drawable/ic_launcher_background"
        android:src="@mipmap/ic_launcher"
        android:scaleType="fitCenter"
        android:id="@+id/imageView"/>

scaleType 为图片的显示方式,有挺多内容,可以一个个尝试。
效果如图:
Imagview效果图

SeekBar

SeekBar代码:

<SeekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

一个监听器例子代码:

findViewById(R.id.seekBar).setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {

            }
        });
        SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar);
        
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
发布了16 篇原创文章 · 获赞 3 · 访问量 3366

猜你喜欢

转载自blog.csdn.net/Ace_bb/article/details/104033039