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();
    }
}
 
 


相关文章
|
1月前
|
存储 消息中间件 人工智能
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
【04】AI辅助编程完整的安卓二次商业实战-寻找修改替换新UI首页图标-菜单图标-消息列表图标-优雅草伊凡
69 4
|
5月前
|
XML 搜索推荐 Android开发
Android改变进度条控件progressbar的样式(根据源码修改)
本文介绍了如何基于Android源码自定义ProgressBar样式。首先分析了系统源码中ProgressBar样式的定义,发现其依赖一张旋转图片实现动画效果。接着分两步指导开发者实现自定义:1) 模仿源码创建一个旋转动画XML文件(放置在drawable文件夹),修改图片为自定义样式;2) 在UI控件中通过`indeterminateDrawable`属性应用该动画。最终实现简单且个性化的ProgressBar效果,附带效果图展示。
327 2
|
5月前
|
Android开发
Android控件样式的抽取(小提及快捷方式)
在Android开发中,若多个控件样式重复,可抽取公共部分以简化代码。例如对EditText提取样式,通过编辑`styles.xml`实现复用。为提高效率,Android Studio提供自动提取Style功能:右键点击控件样式选项,选择“Style...”,勾选需要提取的属性后确认,即可快速生成样式代码,显著提升开发便利性。
170 2
|
11月前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
10月前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
9442 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
10月前
|
前端开发 Linux C#
一款开源、免费、美观的 Avalonia UI 原生控件库 - Semi Avalonia
一款开源、免费、美观的 Avalonia UI 原生控件库 - Semi Avalonia
871 10
|
10月前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
11月前
|
人工智能 API Apache
推荐3款开源、美观且免费的WinForm UI控件库
推荐3款开源、美观且免费的WinForm UI控件库
1975 6
|
11月前
|
XML 前端开发 Android开发
Android:UI:Drawable:View/ImageView与Drawable
通过本文的介绍,我们详细探讨了Android中Drawable、View和ImageView的使用方法及其相互关系。Drawable作为图像和图形的抽象表示,提供了丰富的子类和自定义能力,使得开发者能够灵活地实现各种UI效果。View和ImageView则通过使用Drawable实现了各种图像和图形的显示需求。希望本文能为您在Android开发中使用Drawable提供有价值的参考和指导。
252 2
|
11月前
|
API C# 开发者
基于Material Design风格开源、免费的WinForms UI控件库
基于Material Design风格开源、免费的WinForms UI控件库!
274 0

热门文章

最新文章