Android中的基础控件TextView、Button、ImageView、EditText、ProgressBar

常用控件的使用的方法(TextView、Button、EditText、ImageView、ProrgressBar) 1.TextView 它主要是在界面上显示一些文本信息 代码如下: <TextView android:id="@+id/main_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" andro... 阅读详情

1 Android中的基础控件

首先来看一下常用的基础控件(View):

  • 处理文本内容的View(TextView)
  • 被点击的View(Button)
  • 处理图片内容的View(ImageView)
  • 接收用户信息输入的View(EditText)
  • 进度条类的View(ProgressBar)

1.1 控件的通用属性

在这里插入图片描述
注意:

  • padding指内边距
  • margin指外边距

在这里插入图片描述

注意:

  • layout_gravity指相对于父容器的对齐方式。
  • gravity指其中内容相对于当前控件的对齐方式。

2 TextView

2.1 TextView的继承关系

如下:
在这里插入图片描述

2.2 TextView的常用属性

<!--长文本
        android:text=""     指定文本控件的文本内容
        android:textSize="26sp"     指定字体大小
        android:textColor="#00ffff" 指定字体颜色
        android:lineSpacingExtra="15dp" 行间距(具体大小)
        android:lineSpacingMultiplier="1"   行间距(倍数)

		可以将TextView放到滚动条下,滚动条下只能放一个直接子控件!
		如果ScrollView中想放置两个控件怎么办呢?可以在ScrollView中放置1个布局,然后再在布局中放置控件。

    -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/long_txt"
        android:textSize="26sp"
        android:textColor="#00ffff"
        android:lineSpacingMultiplier="1.5"/>

跑马灯效果可以通过如下进行设置:

    <!--
        android:lines=""        设置行数
        android:single="true"   设置单行
        android:ellipsize=""    设置省略号
        android:focusable="true" 设置可以获取焦点
        android:focusableInTouchMode="true"设置在触摸时获取焦点
        android:marqueeRepeatLimit="marquee_forever" 设置跑马灯持续运行

    -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/long_txt"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"/>

3 EditText

3.1 常用属性

 <!--
    android:inputType       输入类型
    textPassword    		密码
    number          		只能正整数
    numberSigned    		整数
    numberDecimal   		小数
    上面的类型是可以使用|进行组合使用的。

	android:hint     提示文字
	android:maxLength 最长长度
    -->

4 Button

4.1 添加按钮点击事件的方式

4.1.1 自定义内部类

package com.example.uidemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class ButtonActivity extends AppCompatActivity implements View.OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);

        //1.获取按钮
        Button btn1 = findViewById(R.id.btn1);
        //点击事件:被点击时被触发的事件
        MyClickListener mcl = new MyClickListener();
        btn1.setOnClickListener(mcl);       //2.为按钮注册点击事件监听器
	}

    class MyClickListener implements View.OnClickListener{

        @Override
        public void onClick(View view) {
            //在控制台输出一条语句
            Log.e("TAG","按钮被点击了!");
        }
    }
}

4.1.2 匿名内部类

实现方式如下:

//匿名内部类适用于有唯一操作的按钮
Button btn2 = findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
         //在控制台输出
         Log.e("TAG","==========匿名内部类==========");
     }
 });

4.1.3 当前Activity去实现事件接口

记得去实现View.OnClickListener接口:

package com.example.uidemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class ButtonActivity extends AppCompatActivity implements View.OnClickListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        
        Button btn3 = findViewById(R.id.btn3);
        btn3.setOnClickListener(this);
	}

    @Override
    public void onClick(View view) {
        Log.e("TAG","用本类实现了OnClickListener");
    }
}

4.1.4 在布局文件中添加点击事件属性

只需要在xml中设置android:onClick=“register_btn_clicked” :

然后在相应的Activity中实现函数:

public void register_btn_clicked(View view)
{
    Log.e("tip", "register btn is clicker!");
}

5 ImageView

用来显示和控制图像的控件,可以对它进行放大,缩小,旋转等操作。

在Android Stdio中我们通常把图片文件放到mipmap文件夹中,因为对于图片的缩放支持比drawable的更好。


6 ProgressBar

进度条,默认情况下是圆形,没有刻度,只是一个不断旋转的动画效果。通过设置style,可以显示传统的水平带刻度进度条:
在这里插入图片描述
下面看一下代码:

<!--
        进度条:默认样式是转圈。修改样式需设置风格
        style 设置风格progressBarStyleHorizontal(水平进度条)
        android:progress=""   设置进度
        android:max=""      设置最大值,默认100
        android:indeterminate="true"   设置进度条一直滚动
    -->
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:progress="30"
        android:max="200"/>

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:indeterminate="true"/>

    <ProgressBar
        android:id="@+id/progress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"/>

java代码如下:

package com.example.uidemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ProgressBar;

public class ProgressBarActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_progress_bar);

        final ProgressBar progressBar = findViewById(R.id.progress);
        progressBar.setProgress(80);
        //在Android中,4.0以后是不能直接在线程中操作控件的
        //进度条是个特例
        new Thread(){
            @Override
            public void run() {
                for(int i = 1 ; i <= 100 ; i++) {
                    progressBar.setProgress(i);
                    try {
                        Thread.sleep(30);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();
    }
}


7 综合案例

下面看下如下界面:
在这里插入图片描述
首先看下xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    android:background="@mipmap/bg"
    android:gravity="center_horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign Up"
        android:textSize="36sp"
        android:textColor="#ffffff"
        android:layout_marginTop="70dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Imooc Imooc Imooc Imooc\nImooc Imooc Imooc"
        android:layout_margin="20dp"
        android:textSize="28sp"
        android:textColor="#ffffff"
        android:gravity="center_horizontal"/>
    <!--
    android:src=""      指定前景图片资源
    android:background=""   设置背景
    -->
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/add_photo" />

    <!--<ImageButton-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:src="@mipmap/add_photo"/>-->
    <!--
    android:inputType       输入类型
    textPassword    密码
    number          只能正整数
    numberSigned    整数
    numberDecimal   小数
    -->
    <ProgressBar
        android:id="@+id/pro_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:visibility="invisible"
        android:layout_margin="10dp"/>

    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="68dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:hint="Name and Surname"
        android:gravity="center"
        android:textColorHint="#cccccc"
        android:background="@mipmap/border"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="68dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="25dp"
        android:hint="Email Address"
        android:gravity="center"
        android:textColorHint="#cccccc"
        android:background="@mipmap/border"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="68dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="25dp"
        android:hint="Phone"
        android:gravity="center"
        android:textColorHint="#cccccc"
        android:background="@mipmap/border"/>

    <EditText
        android:id="@+id/pwd"
        android:layout_width="match_parent"
        android:layout_height="68dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="25dp"
        android:hint="Password"
        android:gravity="center"
        android:textColorHint="#cccccc"
        android:background="@mipmap/border"
        android:inputType="textPassword"
        android:maxLength="12"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="40dp"
        android:background="@mipmap/btn"
        android:text="Register"
        android:onClick="register"/>
</LinearLayout>

再来看下java文件:

package com.example.uidemo;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void register(View v){
        //1.判断姓名、密码是否为空
        EditText nameEdt = findViewById(R.id.name);
        EditText pwdEdt = findViewById(R.id.pwd);
        final ProgressBar proBar = findViewById(R.id.pro_bar);

        String name = nameEdt.getText().toString();
        String pwd = pwdEdt.getText().toString();
        if(name.equals("") || pwd.equals("")) {
            //2.如果为空,则提示
            //无焦点提示
            //参数1:环境上下文     参数2:提示性文本    参数3:提示持续时间
            Toast.makeText(this,"姓名或密码不能为空",Toast.LENGTH_SHORT).show();
        }else {
            //3.都不为空,则出现进度条
            proBar.setVisibility(View.VISIBLE);
            new Thread(){
                @Override
                public void run() {
                    for(int i = 0 ; i <= 100 ; i++){
                        proBar.setProgress(i);
                        try {
                            Thread.sleep(30);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }.start();
        }
    }
}

【Android入门】3、UI 控件:TextView、Button、ImageView、AlertDialog 和 LinearLayout、RelativeView、ListView 布局 我们所用的所有控件都是直接或间接继承自View的,所用的所有布局都是直接或间接继承自ViewGroup的。View是Android中最基本的一种UI组件,它可以在屏幕上绘制一块矩形区域,并能响应这块区域的各种事件,因此,我们使用的各种控件其实就是在View的基础上又添加了各自特有的功能。而ViewGroup则是一种特殊的View,它可以包含很多子View和子ViewGroup,是一个用于放置控件和布局的容器例如我们实现一个自定义顶部标题栏, 使可返回上一级, 新建一个layout/title.xml。 阅读详情

相关推荐

【Android笔记03】Android基本的UI控件(TextView、Button、EditText、ImageView、ProgressBar)

目录一、基本UI控件1.1、TextView(1)设置基础属性(2)设置带有阴影的TextView(3)实现跑马灯效果1.2、Button(1)按钮效果(2)点击切换背景(3)按钮事件1.3、EditText(1)输入框基础属性(2)获取输入框内容 1.4、ImageView(1)基础属性 1.5、ProgressBar(1)基础属性Android里面提供了很多的UI控件,并且Android中的所有控件可以有两种创建方式:TextView控件的主要作用是用于显示文本内容的,Android里面通过XML设置属

✅ Java 开发工程师 972

android基础 [超级详细android常用控件解析(TextView,EditText, ImageView,Button)]

超级详细android常用控件解析(TextView,EditText, ImageView,Button)

m0_63658317的博客 2878

Spark on Yarn 高可用模式部署流程

本文介绍了如何配置Spark和Yarn的高可用(HA)环境,以确保在大规模数据处理中避免单点故障。

xhaoDream的博客 1446

Android常用控件

单选按钮控件,继承了 Button 控件,可以直接使用 Button 控件支持的各种属性和方法。与普通按钮不同的是,RadioButton 控件多了一个可以选中的功能。EditText 控件允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。其继承自 TextView 控件,具有 TextView 的所有属性的同时,还有自己的属性。CheckBox 控件是复选框控件,继承于 Button 控件,一般用于多项选中操作。除了拥有View类的属性,还发展了些自己的属性,常用的如下图所示。

weixin_58963766的博客 5749

Zynq AXI DMA实战:5分钟搞懂S_AXIS_S2MM和M_AXIS_MM2S数据流(附Vivado配置截图)

本文通过Vivado实战配置,清晰解析了Zynq平台AXI DMA IP核中S_AXIS_S2MM和M_AXIS_MM2S数据流的核心概念与连接方法。文章重点阐述了数据流向、主从关系及接口命名规则,并提供了从ADC数据采集到DDR存储,再从DDR读取数据发送至DAC的完整双向数据流搭建指南,帮助工程师快速避坑。

weixin_29200741的博客 451

Qlib数据获取避坑指南:从CSV导入到自定义数据源的完整解决方案

本文详细解析了Qlib数据获取的完整解决方案,从CSV导入到自定义数据源,涵盖了股票数据处理的关键技巧和常见陷阱。特别针对Qlib平台的数据格式要求和复权处理提供了实用指南,帮助量化投资者高效整合Wind等第三方数据源,确保数据质量与模型性能。

weixin_29047919的博客 304

Android 基本控件

TextView是一个文本框id是这个textview的唯一id 格式是@+id/(自定义ID) 图中Id是tv_one每一个TextView都是一个对象可以使用TextView的ID通过findViewById()方法获取到这个View对象setText是设置这个TextView的文本,此处设置的文本会覆盖掉xml设置的文本组件的高度和宽度 其中wrap_content是自适应高度宽度 match_parent是充满整个父组件单位用dp。

qq_56892136的博客 2307

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64)

STM32移植u8g2库(HAL库)(硬件SPI)(sh1106_128x64) MCU型号为STM32F103RCT6,OLED屏为中景园电子1.3寸屏,驱动芯片为sh1106,分辨率为128x64,MDK版本为V5.34。

Master_0_的博客 6272

Android学习--常见界面控件

用于显示文本信息,它的常用属性如下表所示:

weixin_66158110的博客 1822

【论文详解】AlphaGenome——Sequence-to-Multimodal-Genome-Track

**AlphaGenome** 是由 **Google DeepMind** 于 2025 年 6 月发布的突破性 AI 模型,专门用于预测非编码区遗传变异的功能效应。该模型采用受 **U-Net** 启发的卷积架构结合 **Transformer** 模块,创新性地解决了传统模型在输入序列长度与预测分辨率之间的核心矛盾——能够在 **1M 碱基对的超长上下文** 下实现 **单核苷酸分辨率** 的精准预测。

zwhszdx的博客 960

【虚拟化生态平台】虚拟化平台esxi挂载USB硬盘

虚拟化平台安装好之后,一般情况下,只有一个硬盘在工作,其他的外接硬盘(我的只有一个ssd硬盘,其他的均是usb外接,SATA接口的硬盘是否这样我暂时不清楚哈)没有在工作,但是一个硬盘明显不够我们使用的,所以我们需要去挂载外接的硬盘来扩容。...

Rubik Blog 4834

[Android开发基础2] 七大常用界面控件(附综合案例)

安卓开发常用界面控件使用介绍,包括TextView、Button、EditText、ImageView、RadioButton、CheckBox、Toast,最后附带一个综合案例:账号注册界面加一巩固

人生处处是围城,一切都是最好的安排! 8658

CANoe之I/O功能采集电压

在进入ECU自动化测试中,有时会用到采集ECU电压,CANoe除了可以仿真、监听CAN、ETH、LIN等网络报文外,部分设备(如VN5650、VN1630等)上还有一个I/O口,这个I/O口就可以用来满足我们自动化测试中采集电压的需求。CANoe上的I/O功能用处还是特别大,比如网络管理测试、相关诊断都会用到。

测试领域技术分享 4827

Android基础控件介绍

Android基础控件介绍

一起coding,一起嗨。 1419

YOLOv5入门实践(2)——手把手教你利用labelimg标注数据集

YOLOv5入门实践第2步,手把手教你使用labelimg标注数据集

路人贾的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android(2)——UI基础

文章目录Android1 UI 基础控件View1.1 TextView1.2 EditText2 事件监听处理2.1 Android 1 UI 基础控件 View 处理文本内容的View(TextView) 被点击的View(Button) 处理图片内容的View(ImageView) 接收用户信息输入的View(EditText) 进度条类的View(ProgressBar) 通用属性 1.1 TextView TextView的继承关系 TextView类似于Swing中的JLabel,能完成效果

weixin_45044097的博客 679

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

安卓基础控件小结

布局,TextView:EditText:inmageView,Button;RadioButton:inmagebutton:checkbox:

qq_41738599的博客 705

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android编程_控件

控件View 屏幕上空白区域 UI基础控件,复杂的效果 处理文本内容的View(TextView) 被点击的View (Button) 处理图片内容的View(ImageView) 接收用户信息输入的View(EditText) 进度条类的View(ProgressBar) 控件通用属性以及属性值 layout_width // 设置控件大小 layout_height // match_parent 填充整个父容器 // wrap_content 根据所含内容确定 // 正整数单位dp 精确大小

qq_42766309的博客 2282

Android基础知识整理(二) UI

文章目录二、UIViewGoup 五大布局LinearLayoutRelativeLayoutFrameLayoutTableLayoutAbsoluteLayout基础控件TextViewButtonImageViewEditTextProgressBarAlertDialogProgressDialog高级控件RecyclerViewToolbarViewPagerWebView自定义ViewFragment生命周期基础用法Fragment与Activity通信 二、UI ViewGoup 五大布局

z18223345669的博客 252

山东大学项目实训-地图圈系统-APP(2)

文章目录安卓开发中的常见控件1.EditText---输入文本2.TextView3.Button4.CheckBox---复选框5.RadioButton---单选按钮6.ProgressBar7.ImageView8.ListViewArrayAdapter:SimpleAdapter: 安卓开发中的常见控件 1.EditText—输入文本 ​ 常见属性 android:hint="提示输入的内容" android:textColorHint="设置提示hint信息的颜色" android:maxLen

weixin_43677710的博客 196

UI基础控件

View 1,布局及控件组成 2,TextView(处理文本内容) 2-1:通用属性 加入背景图片:@+文件夹名称+图片名称 1,对长文本进行显示处理 Scrollview:加入滚动条,若加上,不能加俩个textview,会引发崩溃 textSize:设置字体大小 textColor:设置字体颜色 LineSpacingMultiplier:设置倍距 LineSpacingExtra:作用同上 singleLine="true"文本只显示一行 ellipsize...

qq_64035432的博客 2710

Android开源控件收集整理

一 、基本控件 TextView HTextView 一款支持TextView文字动画效果的Android组件库。GitHub - hanks-zyh/HTextView: Animation effects to text, not really textview ScrollNumber 滚动数字控件https://github.com/a-voyager/ScrollNumber ticker 滚动数字控件 GitHub - robinhood/ti...

我的专栏 3061

【Android入门到项目实战--3.1】—— 七种常用控件的使用(TextView、Button、EditText、ImageView、ProgressBar、AlertDialog等)

Android七种常用控件的使用(TextView、Button、EditText、ImageView、ProgressBar、AlertDialog、ProgressDialog),详细讲解这些控件如何使用和使用场景。

个人博客 4991

[基础01]基础控件(上)-TextView-Button-EditText-ImageView

安卓基础控件TextView、Button、EditText、ImageView

iFinder00159的博客 1253
上一篇: Android中的相对布局
下一篇: 电阻应用电路之运放如何消除偏置电流的影响
SlowIsFastLemon
博客等级 码龄8年 265粉丝 790原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值