Android之UI基础控件

简介: Android之UI基础控件

一:view

Android中每个控件父类都是一个view,view代表屏幕上的一块空白区域,具体显示什么内容交个具体的控件显示,

比如这块区域处理文本内容的view就用控件TextView

二:控件通用属性

三:基础控件

处理文本的view——TextView

相当java中Swing包中的JLabel,但是功能更加强大,支持文本处理、支持html代码、文本样式处理、链接效果等,除了上面的通用的属性外,还有以下属性

android:text="@string/app_name"//内容
android:textColor="#fff"//文本颜色
android:textSize="30sp"//文本大小
android:lineSpacingMultiplier="2"//行倍距
android:lineSpacingExtra="20sp"//行距
android:singleLine="true"//单行显示
android:ellipsize="end"//三点省略位置
android:focusable="true"//设置焦点
android:focusableInTouchMode="true"//设置触摸时可获取焦点
android:marqueeRepeatLimit="marquee_forever"//设置跑马灯

被点击的view——Button

对于按钮主要是如何注册点击事件,方法有以下四种

  • 自定义内部类
<Button
    android:id="@+id/login_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="登录"/>
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        //获取按钮
        Button login_btn  =findViewById(R.id.login_btn);
        //按钮login_btn被点击时候的事件,使用自定义内部类实现
        login_btnListener login_btnListener = new login_btnListener();
        login_btn.setOnClickListener(login_btnListener) ;//注册事件监听器
    }
    //自定义一个内部类实现点击事件接口
    class login_btnListener implements View.OnClickListener{
 
        @Override
        public void onClick(View v) {
            Log.e("tag","点击了login_btn按钮戳发了自定义事件");
        }
    }
}
  • 匿名内部类
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Button login_btn  =findViewById(R.id.login_btn);
        login_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("tag","点击了login_btn按钮戳发了自定义事件");
            }
        });
    }
}
  • 当前Activity去实现事件接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener{//实现了点击事件接口
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Button login_btn  =findViewById(R.id.login_btn);
        login_btn.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        Log.e("tag","点击了login_btn按钮戳发了自定义事件");
    }
}
  • 在布局文件中添加点击事件属性
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="loginClik"
    android:text="登录"/>
public class MainActivity extends AppCompatActivity{
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
 
    }
 
    public void loginClik(View v) {//定义xml中绑定的方法
        Log.e("tag","点击了login_btn按钮戳发了自定义事件");
    }
}

处理图片的view——ImageView

用来现实和控制图像的控件,可以对他进行放大缩小旋转等,常见属性:

android:src="@mipmap/login"//指定前景资源名称

接收用户信息输入的View——EditText

用于输入文本内容的输入框,常用属性

android:inputType="textPassword"//文本框类型如number、text...
android:hint="请输入密码"//文本框默认内容
android:maxLength="12"//设置文本长度

进度条类的view——ProgressBar

默认的进度条是一个没有刻度、圆形、只是一个不断旋转的动画效果,通过设置style可以显示水平带有刻度的进度条

style="?android:attr/progressBarStyleHorizontal"//设置滚动条样式,这里progressBarStyleHorizontal是水平
android:progress="30"//设置进度值
android:max="200"//设置进度条最大值 默认100
android:indeterminate="true"//设置一直滚动

如何实现滚动条加载,这个相对于xml而言,在java代码中实现比较容易

我们定义带有id的一个滚动条

<ProgressBar
    android:id="@+id/myProgress"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="?android:attr/progressBarStyleHorizontal"
    />
public class MainActivity extends AppCompatActivity{//实现了点击事件接口
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        final ProgressBar progressBar = findViewById(R.id.myProgress);
        //Android4.o之后不能在线程中直接操作控件 但是进度条是个特列
        new Thread(){
            @Override
            public void run(){
                for (int i = 0; i < 100; i++) {
                    progressBar.setProgress(i);
                    try {
                        Thread.sleep(30);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();
    }
}
 
 


相关文章
|
23天前
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库
|
1月前
|
消息中间件 安全 数据处理
Android为什么不能在子线程更新UI
Android为什么不能在子线程更新UI
27 0
|
2月前
|
算法 API C++
【Qt UI】QT 窗口/控件置顶方法详解
【Qt UI】QT 窗口/控件置顶方法详解
58 0
|
2月前
|
算法 前端开发 C++
【Qt UI相关】Qt设置窗体或控件的背景色透明
【Qt UI相关】Qt设置窗体或控件的背景色透明
22 0
|
2月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
29 0
|
2月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
17 0
|
10天前
|
Java Android开发
Android Mediatek 禁用拨号应用的部分UI显示
Android Mediatek 禁用拨号应用的部分UI显示
12 0
|
19天前
|
编解码 Android开发 UED
安卓UI/UX设计原则:打造引人入胜的用户体验
【4月更文挑战第13天】本文探讨了安卓UI/UX设计的关键原则,包括一致性、简洁性、反馈、清晰性、效率和适应性。一致性要求视觉和行为保持一致,利用系统UI;简洁性减少用户行动,简化导航;反馈需即时且明确;清晰性强调表达清晰,布局有序;效率关注性能优化和任务简化;适应性涉及多设备适配和用户多样性。遵循这些原则,可创建出色应用,提供无缝用户体验。设计应持续迭代,适应技术发展和用户需求。
|
22天前
|
XML 移动开发 Android开发
构建高效安卓应用:采用Jetpack Compose实现动态UI
【4月更文挑战第10天】 在现代移动开发中,用户界面的流畅性和响应性对于应用的成功至关重要。随着技术的不断进步,安卓开发者寻求更加高效和简洁的方式来构建动态且吸引人的UI。本文将深入探讨Jetpack Compose这一革新性技术,它通过声明式编程模型简化了UI构建过程,并提升了性能与跨平台开发的可行性。我们将从基本概念出发,逐步解析如何利用Jetpack Compose来创建具有数据动态绑定能力的安卓应用,同时确保应用的高性能和良好用户体验。
19 0
|
24天前
|
XML Java Android开发
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗