一、as布局
布局文件 layout
drawable 设置背景的文件
新建drawable-xhdpi文件 — 放一些item或图片
values:
theme app风格,string 字符串(相当于宏定义,可以引用),colors颜色配置(可以引用)
AndroidManifest.xml:启动文件,这个板块在哪个activity里,哪个就是启动文件
比如现在是Mainactivity,那启动后第一个界面就是mainactivity
build.gradle需要一些包的时候可以在这里引用
gradle.properties:用真机调试的话在这里需要添加声明
二、linearlayout和relativelayout
linearlayout:线性布局

match_parent:和父布局一样显示
wrap_content:有多高显示多高
relativelayout:相对布局

一定要新增orientation(排列方式)
vertical:竖直排列
horizontal:水平排列
性质:
padding:与周围有多大距离(上下左右)
paddingLeft:与左边有多大距离(某个固定方向,单位dp)
background:背景图片,可以引用背景文件夹的文件
relativelayout:相对布局
不需要orientation,但是需要设置layout

layout_below = “目标”:设置与目标的相对位置为在目标下方
(通过改变below改变与目标的位置)
建议使用linearlayout
三、textview、bottom、edittext基本控件
制作一个简易登录界面
textview:放文字的地方
text:文字
textColor:文字颜色
textSize:文字大小(单位sp)
maxEms:每行显示的字符个数(数字)
maxLines:固定行数(数字)
ellipsize:剩余部分用省略号表示的方式
layout_marginxxx:与另一部分的距离
edittext:输入的地方
inputType:输入的类型
边框设计
在drawable中先创建一个xml

bottom设计

bottom跳转


方法1:直接跳转
package com.example.demo3;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
    //声明控件
    private Button mBtnlogin;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
    
        //找到控件(相要给哪个btn实施功能)
        mBtnlogin = findViewById(R.id.btn_login);
        
        //实现直接跳转----方法1
        mBtnlogin.setOnClickListener(view -> {
            Intent intent = new Intent(MainActivity.this, FunctionActivity.class);
            MainActivity.this.startActivity(intent);
        });
    }
}方法2:匹配固定账号密码跳转
package com.example.demo3;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    //声明控件
    private Button mBtnlogin;
    private EditText mEtUser;
    private EditText mEtPassward;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        //找到控件(相要给哪个btn实施功能)
        mBtnlogin = findViewById(R.id.btn_login);
        mEtUser = findViewById(R.id.et_1);
        mEtPassward = findViewById(R.id.et_2);
        
        mBtnlogin.setOnClickListener(this);
    }
    public void onClick(View v)
    {
        //需要获取输入的用户名和密码
        String username = mEtUser.getText().toString();
        String passward = mEtPassward.getText().toString();
        Intent intent = null;
        //假设正确的账号密码分别是qjj,123456
        if (username.equals("qjj") && passward.equals("123456"))
        {
            //如果正确进行跳转
            intent = new Intent(MainActivity.this, FunctionActivity.class);
            startActivity(intent);
        }else
        {
            //如果不正确,谈出登录失败
        }
    }
    
    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {
        super.onPointerCaptureChanged(hasCapture);
    }
}优化之Toast
1、底部弹出
//toast普通版 //Toast.makeText(getApplicationContext(), ok,Toast.LENGTH_SHORT).show();
2、居中弹出
//提升版,居中显示 Toast toastCenter = Toast.makeText(getApplicationContext(), fail,Toast.LENGTH_SHORT); toastCenter.setGravity(Gravity.CENTER,0,0); toastCenter.show();
3、封装好的类

package com.example.demo3.util;
import android.content.Context;
import android.widget.Toast;
public class ToastUtil {
    public static Toast mToast;
    public static void showMsg(Context context, String msg) {
        if (mToast == null) {
            mToast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
        } else
        {
            mToast.setText(msg);
        }
        mToast.show();
    }
}



















