自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 安卓 国际化

安卓国际化多语言适配

2024-01-04 15:53:28 333

转载 git 强制覆盖拉取

【代码】git 强制覆盖拉取。

2023-11-27 10:22:49 45

原创 Lottie安卓端的介绍与使用方法

Lottie,Airbnb开源的动画框架,是基于CALayer的动画, 所有的路径预先在AE中计算好, 转换为Json文件, 然后自动转换为Layer的动画。**官网:**http://airbnb.io/lottie/#/androidjava或kotlin,安卓相关技术在项目中导入Lottie第三方库在项目中的build.gradle文件中的dependencies中导入把json文件放入项目中的assets目录中,如果json文件中有要求图片资源的话也需要把图片资源放入assets目录中。如图,

2022-07-07 13:50:08 1125 1

原创 css flex一分钟速了解

Flex定义弹性布局,决定盒子内元素的布局方式。采用Flex布局的元素,称为Flex容器,容器内的子元素自动成为容器成员。使用方式display:flex属性flex-direxction决定主轴的方向(项目的排列方向)。row:主轴为水平方向,起点在左端。row-reverse:主轴为水平方向,起点在右端。column:主轴为垂直方向,起点在上沿。column-reverse:主轴为垂直方向,起点在下沿。flex-wrap定义成员如果在一条轴线上排不下如何换行。

2022-05-05 11:02:44 120

原创 Cordova运行Android项目

Cordova安装及第一次运行遇到的问题安装java jdk要事先安装,且系统环境要配置好gradle要事先安装,安装gradle需要注意的是要和java版本适配Android SDK要事先下好,个人建议通过AndroidStudio去下载,在后面的运行有用。

2022-03-24 19:05:26 3621 3

原创 Vue组件深入学习-持续更新

Vue组件-深入学习组件的基础理解组件是可复用的Vue实例,且带有一个名字。把公共样式和模板提取出来形成单独的组件的操作,类似于css中把共同的样式提取出来作为单独存在的css文件,待需要时直接引用。不过组件提取出来的东西有点多,相当于把一个页面拆分成了多个模块,一个组件就是一个模块,最后像搭积木一样把整个页面搭建起来。组件的导出组件通过export default和export导出。export和export default:相同点export与export default均可用于导出常

2022-03-03 09:35:05 462

原创 安卓 音乐音量

安卓 音乐音量AudioManager:音频管理器,位于Android.Media包下,提供了音量控制与铃声模式相关的操作。获得AudioManager对象实例AudioManager audiomanage = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);相关方法adjustVolume(int direction, int flags): 控制手机音量,调大或者调小一个单位,根据第一个参数进行判断 AudioM

2021-09-03 15:59:01 374

原创 安卓 进度条

安卓-进度条(持续更新)在日常开发中经常用到进度条,比如音乐播放时的时长显示,音量显示。这里对目前已经使用过的有关于进度条的知识进行一个总结。ProgressBar(进度条)常用属性由类关系图可知:ProgressBar继承于View类,直接子类有AbsSeekBar和ContentLoadingProgressBar。AbsSeekBar的子类有SeekBar和RatingBar。常用属性:android:max:进度条的最大值android:progress:进度条已完成进度值a

2021-09-02 15:14:52 687

原创 安卓-运行时权限

安卓 运行时权限概述为什么要有运行时权限?如果没有运行时权限,在你下载好app时,app需要的权限一次性获得,这时你不会知道他需要什么权限;或者,有些功能明明不需要某项权限(比如音乐播放和位置权限),但是他又偏偏获取了该权限,没有该权限则无法工作,这时候该怎么解决?运行时权限即需要该项权限时再授权,或者是仅在运行时给予app该权限。所以上面提到的问题通过运行时权限能较好的解决。但开发者需要注意,你不能仅静态注册权限,即在Manifest.xml文件中注册了文件,如:<uses-permis

2021-08-31 16:37:59 3691

原创 安卓 音乐播放器第三版

音乐播放器第三版-增加拖动进度条给音乐播放器增加了拖动进度条功能,进度条显示当前音乐播放进度,拖动后可以从拖动结束位置开始播放。步骤:布局中增加拖动进度条。创建Handler,对seekbar进行监听和设置。布局<TextView android:id="@+id/tv_current_time" android:layout_width="wrap_content" android:layout_height="wrap_content

2021-08-31 09:39:15 246

原创 安卓-水波纹

安卓-水波纹在开发安卓音乐播放器时,点击音乐需要水波纹效果,所以对安卓点击产生水波纹进行了学习。标签:ripple标签,对应一个rippledrawable,当它被设置为一个控件的background属性时,控件在被按下时(无论控件是否是按钮,这里的按下是指手指位置),即会显示水波效果。没有边界的ripple<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.co

2021-08-30 11:26:31 168

原创 音乐播放器第二版

音乐播放器第二版简介音乐播放器基于第一版所做的改进为增加了后台服务,也就是退出app后音乐在后台播放。整体构思:因为要实现在后台播放,所以播放功能整体放入服务中。点击事件依然在主活动中实现,这样做的原因有两个:1、点击事件是发送在主界面中的活动,与服务无关。2、点击事件之后会发送UI更新,服务不能进行UI操作。实现步骤:新建MusicList类作为数据源(即把第一版中的加载数据源方法提取为一个类,目的是服务和活动都能获取此数据源,不需要靠intent进行传递。)新建服务,把有关播放的代码放入服

2021-08-25 15:26:24 536

原创 Android 音乐播放器

音乐播放器https://github.com/JakeWharton/butterknife界面图镇贴:功能分析播放点击歌曲播放(recyclerView的Item的点击事件)点击按钮播放(按钮的点击事件)暂停点击按钮暂停(按钮的点击事件)上一首点击按钮切换到上一首(按钮的点击事件)下一首点击按钮切换到下一首(按钮的点击事件)布局页面主布局采用约束布局。recyclerView放在上部分,下部分作为当前正在播放歌曲的信息展示和切换、播放、暂停歌曲的按钮。

2021-08-19 15:22:19 379

原创 Demo展示app结构代码详解

Demo展示App结构详解架构思想:把所有demo展示在一个页面中,点击一个demo会跳转到该demo自己的页面。主页面结构布局代码: <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.recyclerview.widget.RecyclerView a

2021-08-13 15:27:55 439

原创 java的枚举类与注解 持续更新

枚举类与注解枚举类的使用入门类的对象只有有限个,确定的。当定义一组常量时,强烈建议使用枚举类。枚举类的实现JDK5.0之前,自定义枚举类。下面是一个demo:public class SeasonTest { public static void main(String[] args) { Season spring=Season.SPRING; System.out.println(spring); }}//自定义枚举类

2021-03-11 18:38:04 89

原创 java基础之常用类

常用类字符串相关的类:StringString的特性String类:代表字符串。Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。String是一个final类,代表不可变的字符序列。不可被继承的。体现:当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值。当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值。当调用String的replace()方法修改字符或字符串时,也需要重新指定内存区域赋值

2021-03-08 19:19:50 144

原创 软件工程学导论第一章-软件工程学概述

软件工程学概述软件危机软件危机的介绍软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机包含两方面的问题:如何开发软件,以满足对软件日益增长的需求。如何维护数量不断膨胀的已有软件。软件危机主要有的典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成”的软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

2021-03-07 15:31:22 423

原创 多线程 Java 生产者消费者

多线程基本概念程序:为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程:程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:它有自身的产生、存在和消亡。——生命周期程序是静态的,进程是动态的。进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域。线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同时执行多个线程,就是支持多线程的。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器,线程切换的开销

2021-02-21 18:53:34 164

原创 Java面向对象的知识、持续更新

Java面向对象编程初识面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么。面向过程适合处理一些较为简单的问题。面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题。面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。三大特性:封装,继承,多态。类与对象的关系:类是一种抽象的数据类型,它是对某

2021-02-06 20:50:22 65

原创 Java知识点之数组、包含稀疏数组的知识点

数组数组概述数组是相同类型数据的有序集合。数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法“dataType[] arrayRefVar; //首选的方法或dataType arrayRefVar[]; //效果相同,但不是首选方法java语言使用new操作符来创建数组,语法如下”dataType[]

2021-02-02 21:58:15 69

原创 冒泡排序,用Java实现

冒泡排序概念通过每一次的比较,令大的数字或小的数字像气泡一样浮向数组的一侧。冒泡排序有两层循环,外层循环为冒泡轮数,内层循环为依次比较。代码:package 基础知识点.array;import java.util.Arrays;public class Demo07 { public static void main(String[] args) { int[] a={4,5,2,3}; int[] b=sort(a);

2021-02-02 21:20:54 119 1

原创 java内存简单分析

Java内存分析Java内存堆存放new的对象和数组。可以被所有的线程共享,不会存放别的对象引用。栈存放基本变量类型(会包含这个基本类型的具体数值)引用对象的变量(会存放这个引用在堆里面的具体地址方法区可以被所有的线程共享。包含了所有的class和static变量。例:201213146125.png)]...

2021-02-01 21:38:45 41

原创 java方法的知识点记录

Java方法详解何谓方法Java方法是语句的集合,它们在一起执行一个功能方法是解决一类问题的步骤的有序组合方法包含在类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样有利于我们后期的扩展。方法的定义及调用方法的定义方法包含一个方法头和一个方法体。下面是一个方法的所有部分:修饰符:修饰符,这是可选的,告诉编辑器如何调用该方法。定义了该方

2021-02-01 20:02:56 102

原创 Java的输入、循环、顺序结构知识点记录

Java流程控制用户交互ScannerScanner对象我们可以通过Scanner类来获取用户的输入基本语法Scanner s=new Scanner(System.in)通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。next()1. 一定要读取到有效字符后才可以结束输入。2. 对输入有效字符之前遇到的空白,next()方法会自动将其强调。3. 只有输

2021-01-30 17:33:21 107

原创 Java基础知识

Java基础标识符和关键字java所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符。关键字:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KUgE5B4c-1611738184132)(C:\Users\MI\AppData\Roaming\Typora\typora-user-images\image-20210121200745734.png)]标识符注意点所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始。

2021-01-27 17:03:53 78

原创 Markdown学习与运用、持续更新

Markdown学习注意文章的标点符号都是英文格式。标题:#+空格+标题,几个#号就是几级标题,还可以用Ctrl+数字来进行快捷操作。最多可以到六级标题。字体Hello World! 粗体:在字的两边加上两个**号或者是Ctrl+b。Hello World! 斜体:在字的两边加上一个*号或者是Ctrl+i。Hello World! 斜体加粗:在字的两边加上三个***号。Hello World! 删除线:在字的两边加上~号。引用树梢的阳光 引用:>+回车键。

2021-01-21 18:23:10 77

编译原理实验、词法分析器

编译原理、词法分析器、语法分析器

2021-03-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除