Android studio相关(1):B站‘Android架构解析’基础入门笔记——第一章控件

本文详细介绍了 Android 开发中常用的 UI 控件,包括文本控件 TextView 的多种样式设置方法,按键 Button 的事件处理技巧,输入框 EditText 的使用场景,图片展示 ImageView 的布局调整方式,进度条 ProgressBar 的状态控制,通知栏 Notification 的定制流程,工具栏 Toolbar 的个性化选项,对话框 AlertDialog 的创建步骤以及 PopupWindow 的弹出机制。

学习B站‘Android架构解析’【2021最新版】Android(安卓)开发零基础入门课程【全套】

(自学还是要尽量跟着视频敲一敲代码,做做笔记------如有侵权,联系我删除)

1 文本控件

1.1TextView1

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <TextView
        android:id="@+id/tv_one"
        android:text="@string/tv_one"
        android:textColor="@color/colorAccent"
        android:textStyle="bold"
        android:textSize="30sp"
        android:background="@color/green"
        android:gravity="bottom"
        android:layout_width="200dp"
        android:layout_height="200dp"/>

</LinearLayout>

在这里插入图片描述

1.2 带阴影的TextView

在这里插入图片描述

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <TextView
        android:id="@+id/tv_one"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:gravity="center_vertical"
        
        android:shadowColor="#B2110310"
        android:shadowDx="10.0"
        android:shadowDy="10.0"
        android:shadowRadius="3.0"
        
        android:text="@string/tv_one"
        android:textColor="#59FF00"
        android:textSize="30sp"
        android:textStyle="italic" />

</LinearLayout>

在这里插入图片描述

1.3 实现跑马灯效果的TextView

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <TextView
        android:id="@+id/tv_one"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:gravity="center_vertical"

        android:shadowColor="#B2110310"
        android:shadowDx="10.0"
        android:shadowDy="10.0"
        android:shadowRadius="3.0"

        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:clickable="true"

        android:text="@string/tv_one"
        android:textColor="#59FF00"
        android:textSize="30sp"
        android:textStyle="italic" />

</LinearLayout>

在这里插入图片描述

2 按键控件

2.1 drawable

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

   <Button
       android:text="我是按钮"
       android:background="@drawable/btn_selector"
       android:backgroundTint="@color/btn_color_selector"

       android:layout_width="200dp"
       android:layout_height="200dp" />

</LinearLayout>

在这里插入图片描述
其中
在这里插入图片描述

2.2 button内容管理

MainActivity.java

package cn.edu.cdut.mainactivity;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.logging.LogManager;

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "leo";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn = findViewById(R.id.btn);
//        点击事件
//        btn.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                System.out.println("dianjishijian");
//
////                Log.e(TAG, "onClick: ");
//            }
//        });
//        长按事件
        btn.setOnLongClickListener(new View.OnLongClickListener(){
            @Override
            public boolean onLongClick(View v) {
                System.out.println("dchanganshijian");
//                Log.e(TAG, msg: "onLongClick:");
                return false;
            }
        });

//        触摸事件
        btn.setOnTouchListener(new View.OnTouchListener(){
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                System.out.println("chumoshijian");
//                Log.e(TAG, msg: "onTouch:");
                return false;
            }
        });
    }

    public void leoclick(View view) {
            System.out.println("println输入日志信息");
    }
}

在这里插入图片描述
activity_main.xml代码为

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
   <Button
       android:id="@+id/btn"

       android:text="我是按钮"
       android:background="@drawable/btn_selector"
       android:backgroundTint="@color/btn_color_selector"
       android:onClick="leoclick"

       android:layout_width="200dp"
       android:layout_height="200dp" />

</LinearLayout>

3 EditText

在这里插入图片描述
acctivity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
   <EditText
       android:id="@+id/et"
       android:hint="请输入用户名"
       android:textColor="@color/gray"
       android:inputType="phone"
       android:layout_width="200dp"
       android:layout_height="100dp" />
   <EditText
       android:hint="请输入用户名"
       android:textColor="@color/gray"
       android:inputType="textPassword"       android:drawableLeft="@drawable/ic_account_box_black_24dp"
       android:drawablePadding="20dp"
       android:paddingLeft="20dp"
       android:background="@color/green"
       android:layout_width="200dp"
       android:layout_height="100dp" />
   <Button
       android:id="@+id/btn"
       android:text="获取用户名"

       android:layout_height="wrap_content"
       android:layout_width="wrap_content"
      />
</LinearLayout>

MainActivity.java

package cn.edu.cdut.mainactivity;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.logging.LogManager;

public class MainActivity extends AppCompatActivity {
    private EditText et;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = findViewById(R.id.btn);
        et = findViewById(R.id.et);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = et.getText().toString();
                System.out.println("输入内容为"+text);
            }
        });
    }
}

4 ImageView

在这里插入图片描述

activity.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

   <ImageView
       android:layout_width="200dp"
       android:layout_height="200dp"
       android:scaleType="centerInside"
       android:src="@drawable/maomi" />

   <ImageView
       android:src="@drawable/tuzi"
       android:maxWidth="200dp"
       android:maxHeight="200dp"
       android:adjustViewBounds="true"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

</LinearLayout>

在这里插入图片描述

5 ProgressBar

在这里插入图片描述
actiivity.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

   <ProgressBar
       android:id="@+id/pb"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

   <Button
       android:text="显示隐藏进度条"
       android:onClick="leoClick"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

   <ProgressBar
       android:id="@+id/pb2"
       style="?android:attr/progressBarStyleHorizontal"
       android:max="100"
       android:layout_width="300dp"
       android:layout_height="wrap_content"/>
   <Button
      android:text="模拟下载"
      android:onClick="load"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
</LinearLayout>

MainActivity.java

package cn.edu.cdut.mainactivity;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.util.logging.LogManager;

public class MainActivity extends AppCompatActivity {
    private ProgressBar progressBar;
    private ProgressBar progressBar2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        progressBar =  findViewById(R.id.pb);
        progressBar2 =  findViewById(R.id.pb2);
            }

    public void leoClick(View view) {
        if(progressBar.getVisibility() == View.GONE){
                progressBar.setVisibility(View.VISIBLE);
            }else {
                progressBar.setVisibility(View.GONE);
            }
    }

    public void load(View view) {
        int progress = progressBar2.getProgress();
        progress += 10;
        progressBar2.setProgress(progress);

    }
}

在这里插入图片描述

6 Notification

在这里插入图片描述
activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="sendNotification"
        android:text="发出通知"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="caceNotification"
        android:text="取消通知"/>
</LinearLayout>

java

package com.example.mynotification;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {
    private NotificationManager manager;
    private Notification notification;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        manager =(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
            NotificationChannel channel = new NotificationChannel("leo", "测试通知",
                    NotificationManager.IMPORTANCE_HIGH);
            manager.createNotificationChannel(channel);
        }
        Intent intent = new Intent(this,NotificationActivity.class);

//        PendingIntent pendingIntent= PendingIntent.getActivity(this,0,0);

        notification = new NotificationCompat.Builder(this,"leo")
                .setContentTitle("官方通知")
                .setContentText("世界那么大,我想去走走")
                .setSmallIcon(R.drawable.ic_baseline_person_24)
                .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.maomi))
//                .setContentIntent(pendingIntent)
                .setAutoCancel(true)
                .build();
    }

    public void sendNotification(View view) {
        manager.notify(1,notification);
    }

    public void caceNotification(View view) {
        manager.cancel(1);
    }
}

在这里插入图片描述

7 Toolbar

在这里插入图片描述
xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
    android:id="@+id/tb"
    android:background="#ffff00"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:navigationIcon="@drawable/ic_baseline_arrow_back_24"
    app:title="标题"
    app:titleTextColor="#ff0000"
    app:titleMarginStart="90dp"
    app:subtitle="子标题"
    app:subtitleTextColor="#00ff00"
    app:logo="@mipmap/ic_launcher"/>

<androidx.appcompat.widget.Toolbar
    android:id="@+id/tb2"
    android:background="#ffff00"
    android:layout_height="?attr/actionBarSize"
    android:layout_width="match_parent"
    android:layout_marginTop="10dp"

    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="标题"
    />
    </androidx.appcompat.widget.Toolbar>


</LinearLayout>

java

package com.example.mytoolbar;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;


public class MainActivity extends AppCompatActivity {

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.tb);



        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("leo","onClick:toolbar被点击了");
            }
        });

        Toolbar toolbar2 = findViewById(R.id.tb2);
        toolbar2.setNavigationIcon(R.drawable.ic_baseline_arrow_back_24);
        toolbar2.setTitle("标题");
        toolbar2.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("leo","onClick:toolbar被点击了");

            }
        });
    }
}

在这里插入图片描述

8 AlertDialog

在这里插入图片描述
.xml文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="leoClick"
        android:text="显示对话框"/>


</LinearLayout>

.java文件

package com.example.myalertdialog;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private static final String TAG ="leo" ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void leoClick(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher)
        .setTitle("我是对话框")
        .setMessage("今天天气怎么样")
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.e(TAG,"点击了确定");

            }
        })
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.e(TAG,"点击了取消");
            }
        })
        .setNeutralButton("中间按钮", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.e(TAG,"点击了中间按钮");
            }
        })
        .create()
        .show();

    }
}

在这里插入图片描述

9 PopupWindow

在这里插入图片描述
activity.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <Button
        android:text="弹出Popupwindow"
        android:onClick="leoClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

popupwindow.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/ic_launcher"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="上海"
        android:textSize="18sp"/>
    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="北京"
        android:textSize="18sp"/>


</LinearLayout>

.java文件

package com.example.mypopupwindow;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void leoClick(View view) {
        View popupview = getLayoutInflater().inflate(R.layout.popup_view, null);


        PopupWindow popupWindow = new PopupWindow(popupview, ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT,true);
        popupWindow.showAsDropDown(view);
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值