自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android--Shape文件之描边

我们项目中有非常多的地方会使用shape文件,常规需求无非就是背景圆角处理,但偏偏有些,需求看着很正常,实现起来比较奇葩。 比如,一个图形A的左右下三边与另一个图形B左右下三边重合,上边在图形B的内部。B的背景框需要shape来绘制,这时候你把B绘制完会发现,很可能A没有被绘制上,但是A单独绘制,就要考虑一个问题,即上边线在B中,不能绘制,只能绘制左右下三边。 常规绘制是这样的,四边一起加,就像这样:<shape xmlns:an...

2021-07-06 08:41:55 871 1

转载 Android 今日头条适配详解

这篇文章是在掘金上看到的,感觉不错。怕时间长了不好找,因此就转载过来,进行保存。原文地址:https://juejin.cn/post/6844903661819133960 原文作者:JessYan前言这个月在 Android 技术圈中 屏幕适配 这个词曝光率挺高的,为什么这么说呢?因为这个月陆续有多个大佬发布了屏幕适配相关的文章,公布了自己认可的屏幕适配方案上上个星期 Blankj 老师发表了一篇力挺今日头条屏幕适配方案的 文章,提出了很多优化的方案,并开源了相关源码上个星期 拉丁.

2021-03-19 10:24:51 1320

原创 重新认识Android事件分发机制(2)— 核心篇2

上篇我们讲到Activity是怎样把点击事件传递到ViewGroup中的,这篇我们将继续讲解点击事件在ViewGroup中是怎样传递的。由于Android 5.0之后ViewGroup的源码发生了变化(更加复杂),但原理是相同的。因此我们本着可阅读性和方便理解性,采用5.0之前的源码进行讲解。ViewGroup的事件分发源码:public boolean dispatchTouchEvent(MotionEvent ev) { final int action = ev.getAct

2021-03-11 14:28:36 187

原创 重新认识Android事件分发机制(2)— 核心篇1

上篇我们讲了事件分发的基础点,可以看出所有的事件分发流程都是基于事件分发过程和事件消费过程来处理的。这篇我们将深入了解事件是怎么传递和消费的。从上篇我们知道,事件传递是从Activity开始的,当我们点击Activity时,系统会调用Activity的dispatchTouchEvent方法进行事件的传递。那这个方法都干了啥呢?Activity的事件分发:Activity的dispatchTouchEvent源码是这样的:public boolean dispatchTouchEvent(

2021-03-10 17:26:35 153

原创 重新认识Android事件分发机制(1)— 基础篇

开这篇文章的初衷有两点,第一是复习知识点,温故知新。第二是想把View的整个分发机制加入一些自己的理解,这样再看源码的时候可以起到辅助作用。朋友,你是不是有时候也像我一样,网上找某个知识点,看别人解释大半天,还是不大懂。整篇文章看下来,犹如囫囵吞枣。别人解释了一大堆,好是好,但就是get不到你的困惑点。这篇文章我将尽量加入我自己的理解,用最直白的语言去剖析事件分发的整个过程。水平有限,如果有错误的地方还望多指正。在讲整个事件分发流程之前需要先弄明白几个概念和方法,这样可以帮助我们去理解整个分发流

2021-03-10 14:09:28 125

原创 Android多分辨率适配框架

在网上看了几篇关于手机适配的文章,有几篇文章题目也是Android多分辨率适配框架,作者是谷歌的小弟。文章写的真好,全文分三篇,第一二篇讲原理,第三篇讲使用。但可惜没有源码,并且第三篇还要收费。本着开源分享的精神,我就想找一下网上有没有类似的代码可以参考,自己写一个封装成框架。别说,还真有,搜出来一篇谷歌的小弟以前写的代码片段。于是我就自己写了几个方法,把代码封装了一下。废话不多说,先上效果图再上代码:这是1080分辨率这是320分辨率代码部分:import android

2021-03-07 10:39:05 524 1

原创 Android 自定义View实现九宫格解锁框架

最近有点闲,就想着把从前用到过的一些东西封装成框架。这样以后再用可以直接拿,毕竟做开发的都懒,一行代码能解决的事绝不想写两行。先上个效果图:思路很简单,定义四种画笔三种状态,四种画笔是大圆、小圆、密码错误、图形被选中四种。三种状态是正常状态,被选中状态,密码输入错误状态,这些效果图上都有呈现。框架对外暴露了四个接口:setGesturePassWord(String password) 这个方法可以传入你设置的手势密码进行判断手势密码是否正确。如果没有设置手势密码,默认为空。set

2021-03-07 08:45:01 300 2

原创 使用jstack过程中遇到的一些问题

需要分析代码中关于线程的一些问题,于是就在Studio中写了一个java的Demo。写完编译运行发现报错了,错误代码如下:"Process 'command 'C:\Java\jdk1.8\bin\java.exe'' finished with non-zero exit value 1"这啥问题?没碰到过。于是就万能百度,网上给出了几个解决方案,总结来说,大概有三种:1.打开build.gradle(Moudule:app) 在对应模块添加以下内容:defaultConfig { ···

2021-03-01 14:35:27 925

原创 使用注解抽取SQLite框架时遇到的隐藏坑(id (code 1555 SQLITE_CONSTRAINT_PRIMARYKEY))

自己闲着没事,就写了个Demo,用注解把SQLite的数据库接口类和接口实现类抽出来。代码写完插入一条数据时,发现报错了。错误信息如下:从报错的信息看,应该是id字段出了问题。id我在这里设置成了主键自增长。但是错误信息显示我插入数据库时,_id=0。问题是我的数据库已经有了一条信息,如果再插入时,这个id 正常情况下应该自增的。现在还是0,那就有问题了。既然知道是id出了问题,那就直接定位过去。我当时的实体类注解是这样写的,上图:id设置了主键自增长,标注上已经给了true。那么正常情

2021-02-28 00:36:36 4522

原创 单个文件如何修改MD5

今天要往百度网盘上传视频,结果被和谐掉了。和谐以后出现了这样的画面8秒钟,告诉你要做个好孩子,不要上传让人想入非非的东西。怎么办,我们是搞编码的,就这样止步于困难,向困难屈服么?不,当然不!那如何破解哩?我们要破解它首先要知道它过滤的原理,所谓知己知彼百战百胜嘛。我刚开始以为,它是通过文件名中的敏感词来进行过滤的,所以我就把文件名改成123这样的再上传,结果还是被和谐掉了。不是...

2019-09-30 15:10:13 6004 1

原创 Kotlin学习第二篇(安装与配置)

很早以前讲要学kotlin,中间发生了一些事情,导致开了个头就放下了。现在有机会继续跟进了,今天主要记录一下kotlin的安装与配置。我们知道,kotlin是基于JVM的语言,所以要想使用kotlin,就必须安装JDK。稍微了解一点JAVA的人应该都知道如何安装JDK,如果有不清楚的可以百度一下,网上还是有很详细的教程的。我这里因为事先已经安装过JKD,所以直接进入下一步。因为刚接触kot...

2019-08-25 17:54:38 359

原创 kotlin学习第一篇

尽管Kotlin已经出来很久了,但一直没有被行业过多的进行关注。直到2017年谷歌公司在I/O大会上宣布Kotlin成为开发Android App的一级语言后,Kotlin才迅速走红。那么什么是Kotlin,与Java相比有什么特别之处,足以让Google公司选择成为Android App 的一级语言呢?下面我们来详细的研究下Kotlin。1.Kotlin是什么在Kotlin没有被过多的关...

2018-07-21 18:53:15 278

原创 十六进制与字节数组转换

前段时间开发手持机上的软件,因为A8手持机的射频卡可存储的内容太小,并且需要存储16进制数据,因此就写了一个工具类。上代码:package cn.com.szh;import java.io.UnsupportedEncodingException;public class Main {    public static void main(String[] args) {        Stri...

2018-05-30 11:17:03 7283

原创 Soap协议的应用

Soap是指简单对象访问协议,属于WebService三大要素之一。刚好项目中有用到了Soap协议,于是就进行了简单的封装成了工具类。代码如下:package com.szh.inventorymanage.ui;import java.util.Map;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObjec...

2018-05-29 12:32:10 2284

原创 listview条目侧滑事件与点击事件冲突的解决办法

当使用带有侧滑条目的listview时,并且listview的条目具有点击事件,无可避免的,该条目的侧滑和点击事件会起冲突。如何解决呢?看下面代码设置一个全局变量是关键,该变量用来判断条目是否发生过移动,如果发生过移动,就属于侧滑事件,否则就是点击事件。package com.szh.inventorymanage.activity;import android.app.Activity;impo...

2018-05-29 10:36:38 1621 2

原创 语音识别

前不久项目中用到了语音识别技术,因此就研究了一下语音识别技术在项目中的集成。由于我是在公司的设备上运行的,所以没有截图,为了直观方便的看一下效果,所以就在网上找了两张和我的项目运行后差不多的图片。市场上的语音技术应用最广泛的有两种,一种是百度的语音识别,一种是科大讯飞的语音识别。两者之间的不同之处在于,前者是完全免费的,后者在离线状态识别语音是收费的。今天先记录一下科大讯飞在线的语音识别,...

2018-04-17 11:06:48 627

原创 Android-Http方式请求网络

使用Http访问网络有很多种方式,不过最常用的还是POST和GET方式。项目中正好有用到,因此就写了个工具类,方便以后的使用。 在HttpUtil类里生成一个带Handler的构造参数,之所以要生成一个带Handler的构造参数,是因为在android4.0以后,在activity里请求网络时不能放在主线程。因此通过工具类获取结果以后,把该结果通过handler返回给该界面。 下面上代码:pac

2018-02-04 17:57:06 452

原创 MINA框架与tomcat的整合

上篇文章中主要讲了mina框架如何在main函数中使用,但是实际运用中,许多web项目都是通过tomcat启动的,因此就需要把mina框架整合到tomcat中。本篇主要写一下mina如何在tomcat中启动,web使用到的框架是Spring + SpringMvc + Mybatis框架。 在tomcat中启动MINA分以下3步: 1、在web.xml中配置启动监听类,其中,XXX.MINALi

2018-02-04 15:57:55 1843

原创 MINA框架在服务器端的应用

上一篇文章中写了MINA框架在客户端的使用,由于篇幅所限,没有把在服务器中的使用写下来。这篇文章主要写一下MINA如何在服务器中使用。   MINA框架在服务器端应用,目前我只知道两种部署方式。一种是通过main函数启动,一种是通过tomcat启动。   网上有很多,都是讲MINA如何在main函数中使用,但是在实际的web项目中,也有很多是通过tomcat来部署服务的。我刚好做了一个web项目

2018-02-04 14:47:39 637

原创 Android自定义弹出框

Android自定义弹出框DialogMessage是个工具类,只需要创建该对象,把需要显示到数据传到该类里显示出来,就可以直接使用。下面上代码:package cn.com.szh.infoColloction.ui;import android.app.AlertDialog;import android.app.Dialog;import android.content.Context;

2018-01-14 20:42:12 374

原创 MINA框架客户端的使用

在网络通信中,有时候需要保持长连接,一般的处理方式是使用socket,但是socket是阻塞式的,并且自己拼写socket的时候,步骤也挺繁杂,很容易出错。因此就想到了使用底层封装socket的框架---MINA框架。MINA框架的客户端是很好处理的,但是服务端网上大多是main函数来实现的。实际项目中,通常有很多需要tomcat来启动,因此就需要整合tomcat和MINA框架。本篇主要介绍MIN

2018-01-14 13:54:18 3205 1

原创 android客户端与服务器通信一(服务器的搭建)

搭建服务器首先要创建一个web项目,因为我的开发工具JAVA EE-Eclipse,既可以搭建安卓项目,又可以搭建web项目,所以就直接使用了。如果没有Tomcat的话,可以在eclipse里面设置一下。下面制作一张动态图,是设置Tomcat的过程,点击添加按钮,然后选择tomcat所在路径,导入即可。当设置完tomcat以后,就可以创建web项目了。我们这里假

2017-12-09 19:27:17 22642 1

原创 微信公众平台开发1

公司的一个快递项目需要接入微信公众号的功能,而我正好又负责此项目,因此就把开发微信公众号的任务交给我处理了。接下来几篇我会把我开发微信公众号过程中遇到的问题,困惑和解决方法记录下来,留待以后观看。微信开发分两期完成,一期主要是能对关注的用户主动推送消息。所以我接下来的事情就是围绕着主动推送消息来进行开发。既然要和用户进行交互,就需要识别关注的用户,从微信官方文档可以看出,每

2017-12-07 10:05:13 276

原创 使用adb命令,离线状态通过USB数据线在手机和PC间传输数据

当使用数据线把手机插入到电脑以后,可以获取到手机的设备标识,即deviceId。通过deviceID,使用adb命令,就可以和指定的手机进行数据的传输。代码如下:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.In

2017-12-06 21:13:30 5341 2

原创 Mysql断号查询(连续数字查询中间断开的地方)

项目里需要到连续生成的序列号,这个序列号要按照从小到大的顺序依次往后生成。比如1,2,3,4,5,6,7..24,25...这种连续格式。当前面的某一个数字被用掉以后,就重新生成。比如2,6被用掉了,那么现在的数字格式是这样的:1,3,4,5,7...24,25....当下回再生成数字的时候,就要优先生成2,然后再生成6,只有把中间断掉的数字补齐以后,才依次往后排列生成数字。

2017-12-05 21:13:35 9155

原创 Mysql多表分页查询

多张表,字段完全相同,表名称不同,每三个月的数据插入到一张表中。当查询历史的时候,把所有表中的数据展示出来并做分页处理。sql语句的写法:                 select * from ${fristName}             where 1 = 1

2017-12-03 22:14:43 3796

原创 Mysql向动态表中插入数据

向动态表中插入数据,其中表名称是动态的,需要通过map集合进行传参。需要插入的数据时通过list封装的实体类,然后把list集合放入到map中作为参数传递。sql语句的写法:                 insert into ${tableName} (tableName为自己需要插入的表的名称)             (uuid,t

2017-12-03 18:00:42 1729

原创 Mysql查询每个月的最后一天

如果数据库表中有涉及到金额的部分,很多时候都需要查询每个月最后一天数据。该语句是用来查询每个月最后一天的。sql语句的写法:                 select * from table(table写自己的表名称)              where date_format             (create_ti

2017-12-03 12:55:55 14154

原创 Mysql根据条件批量更新动态数据

当表字段需要根据id进行更新的时候,如果有多条数据需要根据对应的id更新,那么就可以考虑动态更新。假设需要更新表中的state状态字段,以及需要根据对应的id更新表中的number字段。直接上代码java代码部分:写java代码部分是为了更好的理解参数在sql语句中是怎样被封装进去的。        @Responsebody        @R

2017-12-03 12:17:59 4749

原创 Mysql动态创建表

该项目是快递项目,因为快递每天的收发快递数量是很多的,所以如果所有数据都存放到一张表中的话,时间长了就会造成表的臃肿。因此需要动态创建表。sql语句的写法:                 create table ${name}(id varchar(36) primary key , temp1  varchar(10) , temp2  varchar(10))   

2017-12-03 11:00:22 1714

原创 Mysql批量操作2(批量删除)

前一篇写了批量查询,本篇主要写批量删除语句。如果有不明白sql语句中的字段意思,建议通过前一篇批量查询进行了解。直接上代码:sql语句的写法:                 delete  from  table(table写自己的表名称)              where              id  in                    

2017-11-28 22:48:18 1476

原创 Mysql的批量操作(批量查询)

前面几篇Mysql的文章一直在写普通查询,从这篇开始,会写一些Mysql的批量操作。本篇主要是mysql的批量查询,主要是通过id来查询,如果需要查询多个id对应的多个数据,使用for循环去查,对程序来说不太高效。在这里就可以通过批量循环进行查询。直接上代码:java代码部分:         @Responsebody         @RequestMapping("/XX

2017-11-28 22:39:09 45630 4

原创 Mysql条件查询3(按条件查询数量)

sql语句的写法:                 select  count (*)  from table(table写自己的表名称)              where 1 = 1                                   and phone like concat ('%',#{number,jdbcType=VARCHAR})

2017-11-28 21:58:07 3644

原创 Mysql条件查询2(根据手机尾号的后四位查询)

直接上sql语句的写法:sql语句的写法:                 select * from table(table写自己的表名称)              where 1 = 1                                   and state = #{state,jdbcType = INTEGER}          

2017-11-28 21:39:21 8423

原创 Mysql按条件查询

这是第二篇关于MySql语句的文章,打算写一系列关于Mysql查询的文章,之所以要写出来,是后期在做项目中遇到过一些比较复杂的查询语句,如果用完就放着不管了,时间久了就忘记了,所以打算把这些语句写成一系列的文章。和上一篇文章一样,开发环境不变,使用框架也不变。java代码部分:@Responsebody        @RequestMapping("/XXX.do")  

2017-11-28 21:07:53 1038

原创 Mysql分页查询

最近公司安卓项目少,正好有几个javaweb项目可以做。公司又缺人手,所以就分到了java项目上。        这个项目是个快递系统,因为项目中设计到很多sql语句的查询,有些和android的sql语句不太一样。所以就把项目中用到的sql语句记下来,毕竟好记性不如烂笔头。             在写代码之前先介绍一下项目的环境,项目使用的框架是springmvc、spring

2017-11-09 23:08:01 613

原创 android 手势滑动监听

已经很久没有写东西了,懒惰真是勤奋的情敌,而且比勤奋长得帅一百倍,帅的灰飞烟灭。今天写点手势监听的东西,手势监听其实在项目中也用过不少,但是每次写,基本都是百度上copy一下完事。今天忽然热情澎湃的想把这个事件简单的写一写,并且我百分之一的保证,以后每天会写点东西。手势监听触摸的事件是在onTouchEvent()里面做的,这个方法我也没看源码,所以具体在讲些我也不太清楚。今天要写的是自定

2017-03-08 22:48:45 1409

原创 Toast连续点击出现多个的解决方法

来来来~先上图看效果。看吧,连续点几下,吐丝框像吃了毒药一样,亢奋的不得了,间歇性喷发。如果在项目中,那你,这就很尴尬了......解决办法:可以把toast封装成接口,当每次需要弹出吐司的时候,进行判断,如果toast为null的时候,就make她,如果不为null,直接把原来吐司需要显示的内容改变。代码如下:public class Util { 

2016-09-09 17:56:59 2998

原创 UCrop:图片裁剪开源库详细使用

最近项目涉及到这样一个需求,用户上传头像功能——且,在选择玉照以后,要求对玉照进行各种裁剪操作。for example一下:玉照缩放、玉照旋转、玉照双击放大、玉照局部放大、裁剪框框选变化等等功能。    上传头像功能在第一个项目中是做过的,当时需求很简单,就是点击下头像,然后调用系统图库或者调用系统相机拍照返回图片后,对图片进行裁剪。而裁剪界面的效果也很简单,嗯,简单的有点清新。只能对图片

2016-09-07 15:42:05 8997 2

原创 简述setBackgroundResource、setBackgroundColor、setBackgroundDrawable的区别

最近项目中有很多需求需要修改背景色,简单来说就是通过点击listview条目,把选中的item改变颜色。而色值则通过color.xml文件获取。大概需求如下,布局分两部分,第一部分是横向的LinearLayout,第二部分是一个listview,当点击条目的时候,需要让头部和item一起变颜色。如下图需求:        做法如下:color.xml文件<resources> <col

2016-06-13 11:42:45 23529 1

jiugonggeLibrary.jar

jiugonggeLibrary.jar

2021-03-07

语音识别所需文件

语音识别资源文件,语音识别jar包,以及解析语音所需的Gson.jar

2018-04-17

空空如也

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

TA关注的人

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