Android编程_控件

控件View 屏幕上空白区域

UI基础控件,复杂的效果

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

控件通用属性以及属性值

layout_width  // 设置控件大小
layout_height
// match_parent 填充整个父容器
// wrap_content 根据所含内容确定 
// 正整数单位dp 精确大小
id
// @id/valName  使用已存在的id
// @+id/valName  添加新的id
layout_margin
// 正整数单位do 相邻空间或边缘的距离
padding
// 控件内容据控件边缘的距离
background
// 十六进制颜色值   颜色作为背景
// @mipmap/resourceId  图片作为背景
layout_gravity // 偏向 相对父容器
gravity // 自己内容
// center_horizontal 水平居中
// center_vertical  垂直居中
// center 水平居中
// left 居左
// right 居右
// top 居顶
// bottom 居底
visibility // 可见性
// visible 可见状态
// invisible 不可见状态,但保留控件位置
// gone   不可见状态也不保留位置
所有控件都继承于View

TextView

View->TextView
TextView->button
TextView->EditText
TextView类似于Swing 中JLabel,能完成的效果:对长文本进行显示处理、支持Html代码、内容有样式链接效果

<!--
android:textSize="44sp" 设置字体大小
android:textColor="#00ffff" 设置字体颜色
android:lineSpacingMultiplier="2" 设置几倍行距
android:lineSpacingExtra="15sp" 行间距 间距倍距 二选一
-->
长文本处理 TextView
  1. 滚动条效果ScrollView 带滚动条界面,注意滚动条只能放入一个直接子控件
  2. 单行显示省略部分 singleLine=“true” elliosize=“start” 设置省略号位置
  3. 跑马灯效果显示:
 android:singleLine="true" 设置单行
 android:focusable="true"  获取屏幕焦点
 android:ellipsize="marquee" 设置省略号位置
 android:focusableInTouchMode="true" 触摸获取屏幕焦点
 android:marqueeRepeatLimit="marquee_forever" 跑马灯时长
EditText 输入框
android:inputType="number" 输入类型 textPassword 密码 phone 手机号
android:hint="输入内容提示" 输入提示
android:maxLength="11" 输入长度限制

对输入框中文本进行操作

public void mylogin(View v){
        // 1. 判姓名密码是否为空
        EditText number1 = findViewById(R.id.number1);
        EditText possword1 = findViewById(R.id.possword1);
        final ProgressBar progress = findViewById(R.id.progress);
        String num = number1.getText().toString();
        String pwd = possword1.getText().toString();
        // 2. 为空则提示
        if(num.equals("")||pwd.equals("")){
            //无焦点提示
            // 参数1:环境上下文
            Toast.makeText(this,"姓名或密码不能为空",Toast.LENGTH_SHORT).show();
        }
    }
Button 可点击按钮
注册点击时间的方法
  1. 自定义内部类 按钮执行相似
  2. 匿名内部类 简单使用
  3. 当前Activity去实现事件接口
  4. 在布局文件中添加点击事件属性 在xml 文件中绑定
自定义内部类
  1. 获取按钮idButton btn1 = findViewById(R.id.btn1);
  2. 为按钮注册监听事件btn1.setOnClickListener(mc1);
  3. 定义内部类,自定义回调方法
package com.example.test_app;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.service.autofill.OnClickAction;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class ButtonActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        // 1. 获取按钮
        Button btn1 = findViewById(R.id.btn1);
        // 点击事件被点击时触发的事件
        //View.OnClickListener
        MyClickListener mc1 = new MyClickListener();
        btn1.setOnClickListener(mc1); // 2. 点击事件监听器 为按钮注册
    }

    class MyClickListener implements View.OnClickListener{

        @Override
        public void onClick(View view){
            // 回调方法
            Log.e("TAG","刚刚点击的按钮注册了内部类监听器对象的按钮");
        }
    }
}
匿名内部类
// 使用于有唯一操作的按钮
Button btn2 = findViewById(R.id.btn2);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("TAG","匿名内部类");
            }
        });
用本类实现事件
public class ButtonActivity extends AppCompatActivity implements View.OnClickListener{...}

// 注册时传入this
在xml 中直接绑定

常用此方法完成绑定,并且可以为一个界面上的按钮提供统一处理即绑定到同一个事件,通过id 进行事件区分

<Button
        android:id="@+id/btn4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="在xml文件中绑定"
        android:onClick="myClick"/>
public void myClick(View v){
        // 在xml 中直接绑定 v 点的谁传的谁
        switch(v.getId()){
			case R.Id.btn:
			Log.e("TAG","在xml中直接绑定");
			break;
		}
        
    }
ImageView 图片控件

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

常有属性:

  1. src 指定图片资源,指定前景图片资源,背景只是视觉效果于容器相关
  2. background 背景要适配控件大小
图片是一种资源

两个文件夹都是存放图片
mipmap mipmap图片处理技术缩放效果更好
drawable
引用资源@开头
资源文件名命英文字母、数字、下划线 数字不能开头,英文全部小写
图片设置宽高

ImageButton

按钮图,但是没有文字属性

ProgressBar 进度条

进度条默认情况时原型,没有刻度,只是一个不断旋转的动画效果,通过设置style,可以显示传统水平带刻度的进度条

属性:style 设置风格 progress 设置进度 max 进度条最大值 indeterminate 是否一直滚动

实现递增效果

final ProgressBar progress = findViewById(R.id.progress);
        //progress.setProgress(80);
        // android 4.0 之后不能直接在线程中直接操作控件,否则程序会直接崩溃,进度条时特例
        new Thread(){
            @Override
            public void run(){
                for(int i = 0 ; i <= 100 ; i ++){
                    progress.setProgress(i);
                    try {
                        Thread.sleep(30);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }.start();
ProgressBar
        android:id="@+id/progress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"/>
CHeckBox
  1. 系统封装的复选控件
  2. 两种状态:选中及未选中
  3. 监听状态变化:setOnCheckdCHangeListener
RadioButton

单选控件
可以和RadioGroup一起使用,只能选中一个
和CheckBox

  1. 通过点击无法变为选中
  2. 一组RadioButton 只能同时选中一个
  3. 在大部分UI框架中默认大以圆形表示
ToggleButto
  1. 切换两种程序状态
  2. setOnCheckedChangeListener
SeekBar
  1. 在音乐播放等领域使用
  2. 事件监听
    setProgress
    setOnSeekBarChangeListener
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老黑675

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值