目录
处理文本的内容(TextView)
被点击的内容View(Button)按钮
处理图片的内容(ImageView)
接受用户信息输入的View(Edit Text)相当于输入框
进度条类的View(ProgressBar)
一.TextView
ScrollView滚动条
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
//滚动条里面只能放一个大的布局
</ScrollView>
singleLine可以让文本只显示一行
在ScrollView中只能放一个直接子控件
android:textColor设置字体颜色大小
android:textSize设置字体的大小sp
android:lineSpacingMultiplier="2"设置字体的倍距
android:lineSpacingExtra="10sp"设置字体的倍距,两者都可以设置文本行行之间的距离
marquee跑马灯
android:singleLine="true"设置单行
android:ellipsize="start"设置省略号位置
android:ellipsize="marquee"跑马灯
android:focusable="true"设置可以获取焦点
android:focusableInTouchMode="true"设置触摸时可以获取焦点
android:marqueeRepeatLimit="marquee_forever"设置跑马灯的时长
二.EditText
android:inputType输入类型
android:hint提示语
android:maxLength限制最大长度
android:inputType输入类型
textPassword密码
number只能输正整数
numberDecimal可以输入小数
numberSigned只能输整数
numberSigned|numberDecimal两个一起用就可以即输整数,又输小数
三.Button
自定义内部类:
1.获取按钮
Button bin1=findViewById(R.id.bin1);
2.为按钮注册点击事件监听器
bin1.setOnClickListener(mcl);
3.自定义内部类,传参
//获取按钮
Button bin1=findViewById(R.id.bin1);
//点击事件:被点击时触发的事件
myClickListenner mcl=new myClickListenner();
bin1.setOnClickListener(mcl);//为按钮注册点击事件监听器
class myClickListenner implements View.OnClickListener{
@Override
public void onClick(View view) {
//在控制台输出一条语句
Log.e("TAG","刚刚点击的按钮是注册了内部类监听对象的按钮");
}
}
匿名内部类:
匿名内部类只适用于有唯一操作的按钮 为按钮注册监听事件
bin2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e("TAG","===匿名内部类===");
}
});
当前Activity去实现事件接口的方式:
直接在该类中实现接口View.OnClickListenner
Button bin3=findViewById(R.id.bin3);
bin3.setOnClickListener(this);//this代表本类对象
通过xml绑定点击事件:
android:onClick="方法名";
创建一个方法,和上面的方法名一样
public void 方法名(view v){ }
package com.example.myapplication;
import androidx.appcompat.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 btn1 = findViewById(R.id.btn1);
MyClickListener mcl = new MyClickListener();
btn1.setOnClickListener(mcl);
Button btn2 = findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e("TAG", "通过匿名内部类实现点击事件");
}
});
Button btn3 = findViewById(R.id.btn3);
btn3.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Log.e("TAG", "通过当前Activity实现点击事件");
}
public void btn(View view) {
switch (view.getId()) {
case R.id.btn4:
Log.e("TAG", "btn4");
break;
case R.id.btn5:
Log.e("TAG", "btn5");
break;
}
}
class MyClickListener implements View.OnClickListener {
@Override
public void onClick(View view) {
Log.e("TAG", "通过自定义内部类实现点击事件");
}
}
}
四.ImageView
android:background="@在什么里面/图片的名称(不用写后缀)"
图片的命名规则:英文字母小写,数字,下划线,注意:不能有空格,否则会报错
drawable和mipmap都可以放图片,我们一般都放在mipmap中
mipmap对图片的缩放效果更好
android:src=""用来指定前景的图片资源//前景只针对于图片控件来说的,就相当于资源,不同于背景
如果改变图片前景的宽和高,图片的形状不会改变,只会改变图片所在控件所占的的大小
如果该图片设置的是背景,改变其宽和高就会使图片拉伸,形状改变。
五.ImageButton
是一个按钮但是可以显示图片,用前景图片,但是该按钮没有text的属性,有前景及背景的属性。
六.ProgressBar进度条
进度条,默认情况下是圆形的,没有刻度,只是一个不断旋转的动画效果。通过设置style,可以显示传统的水平刻度的进度条
进度条的默认样式是转圈,修饰样式需要设置风格
<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"//传统的进度条
android:progress="30"//设置进度条的位置
android:max="200"//设置进度条的最大值
Android:indeterminate="true"//设置进度条一直滚动
/>
//如果不设置progress的话会默认进度条为100
控制进度条的时长:setProgress(进度);
可以设置一个线程来让进度条慢慢的滚动
在android中,4.0版本以后是不能直接在线程中操作控件的,会使系统崩溃 ,而进度条是一个特例
new Thread(){
public void run(){
for(int i=1;i<=100;i++){
pb.setProgress(i);
try {
Thread.sleep(100);//休眠的时间
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}.start();
obj.getText().toString();其中obj.getText()获得的是可编辑的文本,我们要用toString()方法来获得string文本
无焦点提示:Toast是无焦点提示的对象
makeText()有三个参数
参数一:环境上下文,依赖的是哪个环境,一般是本类用this
参数二:提示的文本""
参数三:提示持续的时间
LENGTH_SHORT提示的时间短一点
LENGTH_LONG提示的时间长一点
.show()让提示框看得见
例:Toast.makeText(this, "账户或密码都不能为空", Toast.LENGTH_SHORT).show();
setVisibility(View.VISIBLE)//在Java文件中设置进度条可见