Android开发-AS学习(二)

news2024/11/28 21:39:29

1.5 ProgressBar

常用属性

描述

android:max

进度条的最大值

android:progress

进度条已完成进度值

android:indeterminate

如果设置为true,则进度条不精确显示进度

style=“?android:attr/progressBarStyleHorizontal"

水平进度条

MainActivity.java

package com.example.progressbar;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;


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.pd2);

    }

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

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

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">


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

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

    <ProgressBar
        android:id="@+id/pd2"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        android:layout_width="300dp"
        android:layout_height="100dp"
        />

    <Button
        android:text="模拟下载"
        android:onClick="load"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        android:indeterminate="true"
        android:layout_width="300dp"
        android:layout_height="100dp"/>


</LinearLayout>

1.6 Notification

  1. 创建一个NotificationManager

NotificationManager类是一个通知管理器类,这个对象是由系统维护的服务,是以单例模式的方法获得,所以一般并不直接实力化这个对象。在Activity中,可以使用Activity.getSystemService(String)方法获取NotificationManager对象,Activity.getSystemService(String)方法可以通过Android系统服务的句柄,返回对应的对象。在这里需要返回NotificationManager,所以直接传递Context.NOTIFICATION_SERVICE即可。

2、使用Builder构造器来创建Notification对象

使用NotificationCompat类的Builder构造器来创建Notification对象,可以保证程序在所有的版本上都能正常工作。Android8.0新增了通知渠道这个概念,如果没有设置,则通知无法在Android8.0的机器上显示。

通知重要程度设置

描述

IMPORTANCE_NONE

关闭通知

IMPORTANCE_MIN

开启通知,不会弹出,没有提示音,状态栏中无显示

IMPORTANCE_LOW

开启通知,不会弹出,没有提示音,状态栏中显示

IMPORTANCE_DEFAULT

开启通知,不会弹出,发出提示音,状态栏中显示

IMPORTANCE_HIGH

开启通知,会弹出,发出提示音,状态栏中显示

常见属性

说明

setContentTitle(String string)

设置标题

setContentTile(String sring)

设置文本内容

setSmallIcon(int icon)

设置小图标

setLargeIcon(Bitmap icon)

设置通知的大图标

setColor(int argb)

设置小图标的颜色

setAutoCancel(boolean boolean)

设置点击通知后自动清除通知

setContentIntent(pendingIntent intent)

设置点击通知后的跳转意图

setWhen(long when)

设置通知被创建的时间

注意:图片不能带颜色

1.7 Toolbar

常见属性:

android:layout_width="match_parent"

android:layout_height="?attr/actionBarSize"

android:background="#ffff00"

app:navigation="@drawable/ic_baseline_arrow_back_24"

app:title="主标题"

app:titleTextColor="#ff0000"

app:titleMarginStart="90dp"

app:subtitle="子标题"

app:subtitleTextColor="#00ffff"

app:logo="@mipmap/ic_launcher"

1.8 AlertDialog

实现方式

属性

说明

AlertDialog.Builder builder = new AlertDialog.Builder(context)

构建Dialog的各种参数

Builder.setIcon(int iconId)

添加ICON

Builder.setTitle(CharSequence title)

添加标题

Builder.setMessage(CharSequence message)

添加消息

Builder.setView(View view)

设置自定义布局

Builder.create()

创建Dialog

Builder.show()

显示对话框

setPositiveButton

确定按钮

setNefativeButton

取消按钮

setNeutralButton

中间按钮

MainActivity.java

package com.example.alertdialog;

import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

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

    public void Liu(View view) {

        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setTitle("我是对话框")
                .setMessage("今天天气如何?")
                .create()
                .show();

    }
}

注意:builder中其他顺序无所谓,create()必须放到数第二,show()必须放最后。

activity_main.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"
    android:orientation="vertical">



    <Button
        android:text="显示对话框"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Liu"

        />

</LinearLayout>

MainActivity.java

package com.example.alertdialog;

import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.content.Context;
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 = "LIU";

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

    public void Liu(View view) {

        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setTitle("我是对话框")
                .setMessage("今天天气如何?")
                .setPositiveButton("确定按钮", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Log.e(TAG, "onClick: 点击了确定按钮");
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Log.e(TAG, "onClick: 点击了取消按钮" );
                    }
                })
                .setNeutralButton("中间", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Log.e(TAG, "onClick: 点击了中间按钮" );
                    }
                })
                .create()
                .show();

    }
}

activity_main.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"
    android:orientation="vertical">



    <Button
        android:text="显示对话框"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Liu"

        />

</LinearLayout>

1.9 PopupWindow

常用方法

说明

setContentView(View contentView)

设置PopupWindow显示的View

showAsDropDown(View anchor)

相对某个控件的位置(正左下方),无偏移

showAsDropDown(View anchor,int xoff, int yoff)

相对某个控件的位置,有偏移

setFocusable(boolean focusable)

设置是否获取焦点

setBackgroundDrawable(Drawable background)

设置背景

dismiss()

关闭弹窗

setAnimationStyle(int animationStyle)

设置加载动画

setTouchable(boolean touchable)

设置触摸功能

setOutsideTouchable(boolean touchable)

设置PoupWindow外面的触摸功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机试_1_暴力求解

一、枚举 判断是否可以使用枚举&#xff1a;分析数据量。 若时间限制在1000ms的情况下&#xff0c;大约可以进行10⁷的运算。 复杂度数据量O(n!)10O(2ⁿ)20O(n)200O(n)3000O(nlogn)10⁶O(n)10⁷O(√10)10⁴O(logn)>10⁰1 abc–清华大学 描述 设a、b、c均是0到9之间的数字…

Java课程设计——学生成绩管理系统

1 需求分析1.1 需求分析概述需求分析是开发软件系统的重要环节&#xff0c;是系统开发的第一步和基础环节。通过需求分析充分认识系统的目标、系统的各个组成部分、各部分的任务职责、工作流程、工作中使用的各种数据及数据结构、各部门的业务关系和数据流程等&#xff0c; 为系…

nacos的配置管理

前言 此博客对nacos的配置管理进行简单介绍&#xff0c;如果降配置文件放在项目中&#xff0c;那么每次进行修改后都要重新编译部署项目&#xff0c;是极其不方便的&#xff0c;如果将配置文件放在一个固定的位置&#xff0c;尽管解决了以上的问题&#xff0c;但是管理起来还不…

【Java寒假打卡】Java基础-File

【Java寒假打卡】Java基础-File概述-三种构造方法绝对路径和相对路径File的创建功能File的删除功能File的判断和获取功能listFile方法练习1&#xff1a;在当前模块下面aaa文件夹创建一个文件a.txt练习2&#xff1a;删除一个多级文件夹练习3&#xff1a;统计一个文件夹中每一种文…

UE插件和项目目录结构学习笔记

Plugins插件的二种安装方式 1、安装到虚幻引擎&#xff08;推荐&#xff09; 转到虚幻引擎安装位置的插件文件夹 Engine/Plugins 将解压得到的插件文件夹放入Marketplace文件夹下&#xff08;如没有新建一个&#xff09;。 启动虚幻引擎打开项目&#xff0c;菜单->编辑->…

如何在线免费将PPT转PDF格式

我们经常会遇到制作演示文稿PPT的格式&#xff0c;但是这种格式一般在传阅的过程中稳定性都较差&#xff0c;所以很多人会选择转成PDF格式&#xff0c;那么有没有免费的处理方式呢&#xff1f; 打开浏览器搜索speedpdf找到并打开在线转换工具首页&#xff0c;选择主页上的PPT转…

Python表白妙招,把情书写进她的照片里

前言 我的好兄弟们&#xff0c;2022年可算是过去了&#xff0c;这不马上要过年了吗 就是说&#xff0c;各位兄弟有对象了吗&#xff0c;没有的回家还要面对亲戚的各种提问 退一步来说&#xff0c;有心仪的人吗&#xff0c;如果有的话&#xff0c;就来看看这篇 程序员的表白小…

【Vue + Koa 前后端分离项目实战7】使用开源框架==>快速搭建后台管理系统 -- part7 前端实现最新期刊管理【增删查改】

人生没有白走的路&#xff0c;每一步都作数。 对应后端部分章节回顾&#xff1a; 【Vue Koa 前后端分离项目实战5】使用开源框架&#xff1e;快速搭建后台管理系统 -- part5 后端实现最新期刊列表管理【增删查改】_小白Rachel的博客-CSDN博客 效果展示&#xff1a; 目录 一、…

少儿Python每日一题(15):回文数

原题解答 本次的题目如下所示: 【编程实现】 回文数是指一个像14641这样“对称”的数,即:将这个数的各位数字按相反的顺序重新排列后,所得到的数和原来的数一样。请编程求不同位数数字的回文数的个数。用户输入一个正整数M(2<M<7),M作为回文数的位数。要求输出M位…

【Javascript】高阶函数,JSON

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录高阶函数箭头函数apply函数JSON高阶函数 把函数作为参数&#xff0c;或者返回一个函数&#xff…

【并发】并发锁机制-深入理解synchronized(一)

【并发】并发锁机制-深入理解synchronized&#xff08;一&#xff09; synchronized 基础篇&#xff08;使用&#xff09; 一、Java共享内存模型带来的线程安全问题 1. 代码示例 2. 运行结果 3. 问题分析 4. 临界区&#xff08;Critical Section&#xff09; 5. 竞态条件…

【Go】内存模型中的内存可见性

前言 使用go必然会使用到协程以及其他的并发操作&#xff0c;初期学习的时候&#xff0c;经常在启动协程时操作变量出现问题&#xff0c;要么就是变量没更新&#xff0c;要么就是各种崩溃&#xff0c;或者vscode报告警之类的&#xff0c;于是浅看了一下Go的内存模型&#xff0…

离散制造业ERP系统对生产物料管理有哪些帮助?

在离散制造企业生产加工过程中&#xff0c;生产物料管理是一个至关重要的环节。车间物料能不能管控好&#xff0c;影响着整个产品的品质、工作效率及制造成本的控制等。离散制造业通常需要品类、属性繁多的原材料和配套件&#xff0c;而各类物料的及时供应十分重要&#xff1b;…

优思学院|QCC 是什么意思?有什么用?

QCC 的中文意思是质量控制圈&#xff0c;也有人称为品质圈。 质量控制圈&#xff08;QCC&#xff09;是来自日本的一种质量管理方法&#xff0c;这个概念的作者是石川馨、日本科学家和工程师联盟&#xff08;JUSE&#xff09;共同发明。 QCC的方法是建立由5-11名成员组成的小团…

【VUE2-01】vue2的起步

文章目录一、初识vue1.1vue.js的特点1.2什么是虚拟的dom&#xff1f;1.3为什么使用虚拟的dom1.4vue设计思想二、第一个vue应用如果想系统细致的学习&#xff0c;建议阅读vue的官方网站目前vue官网默认的是vue3的内容&#xff0c;此篇以vue2为基础开始学习一、初识vue 1.1vue.j…

电脑重装系统后没声解决步骤

电脑重装系统之后&#xff0c;发现声音功能&#xff0c;不能正常使用了。对于电脑小白来说&#xff0c;不知道该如何处理&#xff0c;下面就和大家说说重装系统后没声音怎么办呢?&#xff0c;其实完全可以自己处理这种情况&#xff0c;快来看看小白重装系统后没声解决方法吧! …

插入损耗——线对上的信号衰减

“您好&#xff0c;我需要您的帮助。我在测试长距离线缆的时候&#xff0c;插入损耗没有通过测试&#xff01;”这是在对铜缆布线进行验收测量时&#xff0c;我们经常能够听到的问题。针对这一情况&#xff0c;为了能提供更专业的支持&#xff0c;我们必须了解这一电气特性的基…

如何修改linux下的vim复制行数限制

vim-如何修改linux下的vim复制行数限制来自北方的小强正在努力成为资深数字IC搬砖工的搬砖工个人根目录下的.vimrc (~/.vimrc)添加如下内容:set viminfo1000,<600linux下&#xff0c;默认最多复制50行&#xff0c;上述修改即将限制改为600行。注意&#xff1a;1 如果.vimrc文…

Arduino固件库的离线安装方式

参考&#xff1a;https://www.cnblogs.com/hilary0614/p/libraries.html https://jingyan.baidu.com/article/9f7e7ec09d90906f281554e1.html&#xff0c;开发板管理器和管理库区别 Arduino 经常推出新的控制器&#xff0c;这些新的控制器可能不在现有的板子型号中&#xff0c;…

【Linux】Linux 项目自动化构建工具 -- make/makefile

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux 文章目录一、前言二、概念三、demo 实现四、原理与规则1、依赖关系和依赖方法① 感性理解② 深层理解…