Android学习笔记2||常用布局、控件基本使用

安卓Ui学习1

1、线性布局 LinearLayout
在这里插入图片描述
android:orientation="horizontal"水平布
android:orientation=“vertical”:垂直布局
android:gravity="center"布局位置
android:layout_width="match_parent"填充宽度 android:layout_height="wrap_content"自适应高度

水平布局:几个控件位于同一行/不同一列
在这里插入图片描述

垂直布局:控件位于同一列
在这里插入图片描述

只有水平布局horizontal时: android:layout_gravity=“center_vertical”
才有作用,控件位于那一列的中间 只有垂直布局vertical时:
android:layout_gravity="center_horizontal"才有效果,位于那一行的中间

layout_gravity:控件的位置。 gravity:控件里面文字的位置。

当 android:orientation=“vertical” 时,
只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。

当 android:orientation=“horizontal” 时,
只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

android:layout_weight的真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度(android:layout_width)加上剩余空间的占比!
match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小
wrap_content表示让当前的控件大小能够刚好包含里面的内容,也就是由控件内容决定当前控件的大小

密码:(一个只能输入数字,一个可以输入字符串和数字)
在这里插入图片描述
文本框提示属性 android:hint=“请输入用户名”
layout_weight=“1” 填充(可删掉)
android:textSize="20dp"更改字体大小
android:layout_marginLeft="10dp"添加距离
Chan 2021/5/5 20:12:13
xml中 android:ems属性 ,作为EditText 默认生成 的属性,其含义是需要编辑的 字符串长度
(例如:=“10”)
但是 EditText的属性 ,只有在 android:layout_width=“wrap_content” 时,才会显示;

在这里插入图片描述
相对布局:RelativeLayout
lay_alignParentLeft = “true”;lay_alignParentTop = “true”;与父本的左上角对齐

帧布局:FrameLayout
所以控件默认左上角

百分比布局
只有LinearLayout 支持使用layout_weight属性来实现按比例指定控件大小的功能

引入布局

常用控件
1、TextView
android:text=“hello” 指定文本内容
android:gravity=“cneter”;(top,bottom,left,right,center等等,可用"|"指定多值);
android:textSize=“24sp” 指定字的大小在,字体大小单位sp
android:textColor=“#00ff00” 指定文字颜色

2、Button
android:text=“ button”(但系统绘对所以转换成大写,取消效果添加android:textAllCaps=“false")
给button添加监听器 (在MainActivity里) p81

3、EditText
输入编辑内容
android:hint=” “ 提示信息
android:maxLines=”2“ 指定EditText的最大行数为两行

为Button 的点击事件注册一个监听器

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button) findViewById(R.id.button2);
        button.setOnClickListener(new ViewOnClickListener(){
         	@Override 
         	public void onClick(View v)
         	//此处添加逻辑
        });
    }

每点击button都会监听onClick方法

实例

package com.example.chanyongkjian;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private EditText editText;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button) findViewById(R.id.button2);
        editText = (EditText) findViewById(R.id.editTextTextPersonName3);
        button.setOnClickListener(this);
    }
    @Override
    public void onClick(View v){
        switch (v.getId()) {
            case R.id.button2:
                String inputText = editText.getText().toString();
                Toast.makeText(MainActivity.this, inputText,
                 Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
    }
}

首先 findViewById() 得到EditText实例,然后在在按钮的点击事件里调用 EditText的getText() 方法获取到输入的内容,再调用toString()方法转换成字符串,最后老方法使用Toast将输入的内容显示出来

4、ImageView

图片通常放在drawable
android:src="@drawable/img_1" 指定图片

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/c" />

setImageResource( )方法将图片改为其他图片

 @Override
    public void onClick(View v){
        switch (v.getId()) {
            case R.id.button2:
                imageView.setImageResource(R.drawable.b);
                break;
            default:
                break;
        }
    }

5、ProgressBar 进度条

style="?android:attr/progressBarStyleHorizontal" 指定水平进度条
android:max=“100”

    <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <ProgressBar
        android:id="@+id/progress_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100" />

可见属性:android:visibility=” “(visible、invisible(变透明了)、gone)

用getVisibility()方法判断ProgressBar 是否可见,可见就隐藏进度条,不可见就显示显示条

动态修改进度条:

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button2:
                int progress = progressBar.getProgress();
                progress = progress + 10;
                progressBar.setProgress(progress);

                break;
            default:
                break;
        }
    }

https://blog.csdn.net/qq_37022150/article/details/79334181?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162105870516780366549473%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162105870516780366549473&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-79334181.pc_search_result_no_baidu_js&utm_term=getProgress

6、AlertDialog 界面弹出对话框

(AlertDialog不需要在标签里说明)

首先AlertDialog.Builder创建一个AlertDialog实例,然后对话框设置标题、内容、可否用back框关闭对话框等属性,接下来调用setPositiveButton()方法为对话框设置确定按钮的点击事件,调用setNegativeButton()方法设置取消按钮的点击事件,最后调用show()方法显示对话框。

实例:

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button2:
                AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                dialog.setTitle("This is Dialog");
                dialog.setMessage("Something important.");
                dialog.setCancelable(true);
                dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });
                dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });
                dialog.show();


                break;
            default:
                break;
        }
    }

7、ProgreeDialog 带有进度条的对话框

首先构建一个ProgressDialog对象,然后同设置标题等等,最后shou()显示出来

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button2:
               ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
                progressDialog.setTitle("This is Dialog");
                progressDialog.setMessage("Loading...");
                progressDialog.setCancelable(true);
                progressDialog.show();
                break;
            default:
                break;
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值