文章目录

  • 1 Android中的基础控件
    • 1.1 控件的通用属性
  • 2 TextView
    • 2.1 TextView的继承关系
    • 2.2 TextView的常用属性
  • 3 EditText
    • 3.1 常用属性
  • 4 Button
    • 4.1 添加按钮点击事件的方式
      • 4.1.1 自定义内部类
      • 4.1.2 匿名内部类
      • 4.1.3 当前Activity去实现事件接口
      • 4.1.4 在布局文件中添加点击事件属性
  • 5 ImageView
  • 6 ProgressBar
  • 7 综合案例

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个布局,然后再在布局中放置控件。--><TextViewandroid: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" 设置跑马灯持续运行--><TextViewandroid: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{@Overrideprotected 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{@Overridepublic void onClick(View view) {//在控制台输出一条语句Log.e("TAG","按钮被点击了!");}}
}

4.1.2 匿名内部类

实现方式如下:

//匿名内部类适用于有唯一操作的按钮
Button btn2 = findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {@Overridepublic 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{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_button);Button btn3 = findViewById(R.id.btn3);btn3.setOnClickListener(this);}@Overridepublic 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=""      设置最大值,默认100android:indeterminate="true"   设置进度条一直滚动--><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content" /><ProgressBarandroid:layout_width="match_parent"android:layout_height="wrap_content"style="?android:attr/progressBarStyleHorizontal"android:progress="30"android:max="200"/><ProgressBarandroid:layout_width="match_parent"android:layout_height="wrap_content"style="?android:attr/progressBarStyleHorizontal"android:indeterminate="true"/><ProgressBarandroid: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 {@Overrideprotected 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(){@Overridepublic 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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Sign Up"android:textSize="36sp"android:textColor="#ffffff"android:layout_marginTop="70dp"/><TextViewandroid: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=""   设置背景--><ImageViewandroid: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   小数--><ProgressBarandroid: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"/><EditTextandroid: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"/><EditTextandroid: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"/><EditTextandroid: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"/><EditTextandroid: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"/><Buttonandroid: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 {@Overrideprotected 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(){@Overridepublic void run() {for(int i = 0 ; i <= 100 ; i++){proBar.setProgress(i);try {Thread.sleep(30);} catch (InterruptedException e) {e.printStackTrace();}}}}.start();}}
}

Android中的基础控件TextView、Button、ImageView、EditText、ProgressBar相关推荐

  1. Android中的基础控件CheckBox、RadioButton、ToggleButton、SeekBar

    文章目录 1 CheckBox 1.1 CheckBox介绍 2 RadioButton 2.1 RadioButton介绍 3 ToggleButton 3.1 ToggleButton介绍 4 S ...

  2. Android中的常用控件之进度条(ProgressBar)

    ProgressBar的常用属性 style(进度条的样式,默认为圆形:用style="?android:attr/progressBarStyleHorizontal"可以将进度 ...

  3. 从零开始学android:Android中的基本控件(上)

    从零开始学android:Android中的基本控件(上) 本章内容较多,下面只贴代码,大家只需要贴到自己eclipse里就知道作用^^! View组件简介 Android中的View组件包含了几乎所 ...

  4. Android中进度条控件使用

    android中进度条控件使用 ProgressBar pb = findViewById(R.id.pb);pb.setMax(100);pb.setProgress(33); 转载于:https: ...

  5. Android基础控件之Button的基本使用

    Button基础 用户界面部分学起来还真是无处下手哇,总不能一个控件发一篇文吧,略有点费时间啊...这个难道不是边用边学才给力吗..所以我打算从最实用的Button开始下手. 先贴几个链接,好东西: ...

  6. android中互斥的控件,Android控件之Radiobutton与RadioGroup

    RadioButton 是一个单选控件,在一个RadioGroup中,各个RadioButton是互斥的 XML文件: xmlns:tools="http://schemas.android ...

  7. android中的 listview控件,聊聊Android中的ListView控件

    软硬件环境 Macbook Pro MGX 72 Android Studio 1.3.2 坚果手机 前言 ListView是Android系统中使用非常广泛的一种控件,几乎所有的App都会用到它.它 ...

  8. android 中使用TabHost控件实现微信界面的底部菜单效果

    首先,在布局文件中的代码如下:(菜单位于底部,需要在代码中设置) <TabHostandroid:id="@android:id/tabhost"android:layout ...

  9. android 中的组合控件的设计

    在开发应用程序的时候,很多时候会使用到几个重复的控件,例如Android手机的设置界面里面的位置服务里面的每一栏都是组合控件,也就是说多个控件组成一个整体,如下图所示: 红色方框里面的是由两个Text ...

最新文章

  1. GPT3后可考虑的方向-知识推理与决策任务及多模态的信息处理
  2. WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决
  3. 14 岁发现 Bug 兼职游戏开发、拒绝过乔布斯,Dropbox 创始人成为科技创业者的偶像...
  4. 解决Linux中java.net.UnknownHostException: oracledb.sys.iflashbuy.com问题
  5. Python用拉格朗日法进行数据横向插值
  6. 图像处理中ct图的通道是多少_常见医疗扫描图像处理步骤
  7. 数据库连接池的工作原理
  8. 沉下来,沉下来,别让自己太浮躁
  9. Modbus协议栈应用实例之一:Modbus RTU主站应用
  10. 360再回应Citron财务造假 双方或将升到法律层面
  11. html视图查看,视图.html · zhaohaihang/Semantic UI demo - Gitee.com
  12. 第九大陆服务器未找到文件,我的世界1.7.x第九大陆生存服务器
  13. matlab的ism实现,ism模型的matlab实现
  14. 专访数据挖掘领头人韩家炜教授:不要迷信权威,做学问要秉承「三个真实」...
  15. 写给音响工程师的科普文章(一)——从模电角度去了解调音台的信号流程
  16. IBM server guide download
  17. 利用JS实现简单的注册界面验证小案例
  18. 数学物理方法·复数/模/辐角引导题目
  19. 企业各职位英文缩写 PM,TM,PL,TL,SE,PG,CEO,CFO
  20. 【JavaSE与数据结构】栈与Stack类

热门文章

  1. 【Matlab】求解积分方程的数值解
  2. 3.2 为超参数选择合适的范围-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  3. Ardino基础教程 13_温度传感器
  4. 基础篇-verilog-按位与和逻辑与
  5. 数学篇(二) 方差、标准差、协方差
  6. RS-232串口线与以太网的八芯双绞线的对比,为什么不使用串口线来连接电脑和路由器?
  7. PDF转Word技巧,看这篇足够
  8. Java中,内部类的概述和内部类的访问特点和内部类的分类(内部类的位置)
  9. 理解正向代理与反向代理的区别
  10. 对比2个表mailbox_id字段的差集,然后做插入操作