Android
文章平均质量分 71
小黄狗汪汪汪
这个作者很懒,什么都没留下…
展开
-
Android 今日头条适配详解
这篇文章是在掘金上看到的,感觉不错。怕时间长了不好找,因此就转载过来,进行保存。原文地址:https://juejin.cn/post/6844903661819133960 原文作者:JessYan前言这个月在 Android 技术圈中 屏幕适配 这个词曝光率挺高的,为什么这么说呢?因为这个月陆续有多个大佬发布了屏幕适配相关的文章,公布了自己认可的屏幕适配方案上上个星期 Blankj 老师发表了一篇力挺今日头条屏幕适配方案的 文章,提出了很多优化的方案,并开源了相关源码上个星期 拉丁.转载 2021-03-19 10:24:51 · 1266 阅读 · 0 评论 -
重新认识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 · 170 阅读 · 0 评论 -
重新认识Android事件分发机制(2)— 核心篇1
上篇我们讲了事件分发的基础点,可以看出所有的事件分发流程都是基于事件分发过程和事件消费过程来处理的。这篇我们将深入了解事件是怎么传递和消费的。从上篇我们知道,事件传递是从Activity开始的,当我们点击Activity时,系统会调用Activity的dispatchTouchEvent方法进行事件的传递。那这个方法都干了啥呢?Activity的事件分发:Activity的dispatchTouchEvent源码是这样的:public boolean dispatchTouchEvent(原创 2021-03-10 17:26:35 · 140 阅读 · 0 评论 -
重新认识Android事件分发机制(1)— 基础篇
开这篇文章的初衷有两点,第一是复习知识点,温故知新。第二是想把View的整个分发机制加入一些自己的理解,这样再看源码的时候可以起到辅助作用。朋友,你是不是有时候也像我一样,网上找某个知识点,看别人解释大半天,还是不大懂。整篇文章看下来,犹如囫囵吞枣。别人解释了一大堆,好是好,但就是get不到你的困惑点。这篇文章我将尽量加入我自己的理解,用最直白的语言去剖析事件分发的整个过程。水平有限,如果有错误的地方还望多指正。在讲整个事件分发流程之前需要先弄明白几个概念和方法,这样可以帮助我们去理解整个分发流原创 2021-03-10 14:09:28 · 99 阅读 · 0 评论 -
Android多分辨率适配框架
在网上看了几篇关于手机适配的文章,有几篇文章题目也是Android多分辨率适配框架,作者是谷歌的小弟。文章写的真好,全文分三篇,第一二篇讲原理,第三篇讲使用。但可惜没有源码,并且第三篇还要收费。本着开源分享的精神,我就想找一下网上有没有类似的代码可以参考,自己写一个封装成框架。别说,还真有,搜出来一篇谷歌的小弟以前写的代码片段。于是我就自己写了几个方法,把代码封装了一下。废话不多说,先上效果图再上代码:这是1080分辨率这是320分辨率代码部分:import android原创 2021-03-07 10:39:05 · 464 阅读 · 1 评论 -
Android 自定义View实现九宫格解锁框架
最近有点闲,就想着把从前用到过的一些东西封装成框架。这样以后再用可以直接拿,毕竟做开发的都懒,一行代码能解决的事绝不想写两行。先上个效果图:思路很简单,定义四种画笔三种状态,四种画笔是大圆、小圆、密码错误、图形被选中四种。三种状态是正常状态,被选中状态,密码输入错误状态,这些效果图上都有呈现。框架对外暴露了四个接口:setGesturePassWord(String password) 这个方法可以传入你设置的手势密码进行判断手势密码是否正确。如果没有设置手势密码,默认为空。set原创 2021-03-07 08:45:01 · 264 阅读 · 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 · 857 阅读 · 0 评论 -
Kotlin学习第二篇(安装与配置)
很早以前讲要学kotlin,中间发生了一些事情,导致开了个头就放下了。现在有机会继续跟进了,今天主要记录一下kotlin的安装与配置。我们知道,kotlin是基于JVM的语言,所以要想使用kotlin,就必须安装JDK。稍微了解一点JAVA的人应该都知道如何安装JDK,如果有不清楚的可以百度一下,网上还是有很详细的教程的。我这里因为事先已经安装过JKD,所以直接进入下一步。因为刚接触kot...原创 2019-08-25 17:54:38 · 334 阅读 · 0 评论 -
十六进制与字节数组转换
前段时间开发手持机上的软件,因为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 · 7233 阅读 · 0 评论 -
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 · 2260 阅读 · 0 评论 -
listview条目侧滑事件与点击事件冲突的解决办法
当使用带有侧滑条目的listview时,并且listview的条目具有点击事件,无可避免的,该条目的侧滑和点击事件会起冲突。如何解决呢?看下面代码设置一个全局变量是关键,该变量用来判断条目是否发生过移动,如果发生过移动,就属于侧滑事件,否则就是点击事件。package com.szh.inventorymanage.activity;import android.app.Activity;impo...原创 2018-05-29 10:36:38 · 1596 阅读 · 2 评论 -
语音识别
前不久项目中用到了语音识别技术,因此就研究了一下语音识别技术在项目中的集成。由于我是在公司的设备上运行的,所以没有截图,为了直观方便的看一下效果,所以就在网上找了两张和我的项目运行后差不多的图片。市场上的语音技术应用最广泛的有两种,一种是百度的语音识别,一种是科大讯飞的语音识别。两者之间的不同之处在于,前者是完全免费的,后者在离线状态识别语音是收费的。今天先记录一下科大讯飞在线的语音识别,...原创 2018-04-17 11:06:48 · 537 阅读 · 0 评论 -
Android-Http方式请求网络
使用Http访问网络有很多种方式,不过最常用的还是POST和GET方式。项目中正好有用到,因此就写了个工具类,方便以后的使用。 在HttpUtil类里生成一个带Handler的构造参数,之所以要生成一个带Handler的构造参数,是因为在android4.0以后,在activity里请求网络时不能放在主线程。因此通过工具类获取结果以后,把该结果通过handler返回给该界面。 下面上代码:pac原创 2018-02-04 17:57:06 · 413 阅读 · 0 评论 -
简述setBackgroundResource、setBackgroundColor、setBackgroundDrawable的区别
最近项目中有很多需求需要修改背景色,简单来说就是通过点击listview条目,把选中的item改变颜色。而色值则通过color.xml文件获取。大概需求如下,布局分两部分,第一部分是横向的LinearLayout,第二部分是一个listview,当点击条目的时候,需要让头部和item一起变颜色。如下图需求: 做法如下:color.xml文件<resources> <col原创 2016-06-13 11:42:45 · 23353 阅读 · 1 评论 -
UCrop:图片裁剪开源库详细使用
最近项目涉及到这样一个需求,用户上传头像功能——且,在选择玉照以后,要求对玉照进行各种裁剪操作。for example一下:玉照缩放、玉照旋转、玉照双击放大、玉照局部放大、裁剪框框选变化等等功能。 上传头像功能在第一个项目中是做过的,当时需求很简单,就是点击下头像,然后调用系统图库或者调用系统相机拍照返回图片后,对图片进行裁剪。而裁剪界面的效果也很简单,嗯,简单的有点清新。只能对图片原创 2016-09-07 15:42:05 · 8784 阅读 · 2 评论 -
Toast连续点击出现多个的解决方法
来来来~先上图看效果。看吧,连续点几下,吐丝框像吃了毒药一样,亢奋的不得了,间歇性喷发。如果在项目中,那你,这就很尴尬了......解决办法:可以把toast封装成接口,当每次需要弹出吐司的时候,进行判断,如果toast为null的时候,就make她,如果不为null,直接把原来吐司需要显示的内容改变。代码如下:public class Util {原创 2016-09-09 17:56:59 · 2874 阅读 · 0 评论 -
android 手势滑动监听
已经很久没有写东西了,懒惰真是勤奋的情敌,而且比勤奋长得帅一百倍,帅的灰飞烟灭。今天写点手势监听的东西,手势监听其实在项目中也用过不少,但是每次写,基本都是百度上copy一下完事。今天忽然热情澎湃的想把这个事件简单的写一写,并且我百分之一的保证,以后每天会写点东西。手势监听触摸的事件是在onTouchEvent()里面做的,这个方法我也没看源码,所以具体在讲些我也不太清楚。今天要写的是自定原创 2017-03-08 22:48:45 · 1359 阅读 · 0 评论 -
MINA框架客户端的使用
在网络通信中,有时候需要保持长连接,一般的处理方式是使用socket,但是socket是阻塞式的,并且自己拼写socket的时候,步骤也挺繁杂,很容易出错。因此就想到了使用底层封装socket的框架---MINA框架。MINA框架的客户端是很好处理的,但是服务端网上大多是main函数来实现的。实际项目中,通常有很多需要tomcat来启动,因此就需要整合tomcat和MINA框架。本篇主要介绍MIN原创 2018-01-14 13:54:18 · 3143 阅读 · 1 评论 -
android客户端与服务器通信一(服务器的搭建)
搭建服务器首先要创建一个web项目,因为我的开发工具JAVA EE-Eclipse,既可以搭建安卓项目,又可以搭建web项目,所以就直接使用了。如果没有Tomcat的话,可以在eclipse里面设置一下。下面制作一张动态图,是设置Tomcat的过程,点击添加按钮,然后选择tomcat所在路径,导入即可。当设置完tomcat以后,就可以创建web项目了。我们这里假原创 2017-12-09 19:27:17 · 22601 阅读 · 1 评论 -
使用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 · 5186 阅读 · 2 评论 -
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 · 347 阅读 · 0 评论 -
MINA框架在服务器端的应用
上一篇文章中写了MINA框架在客户端的使用,由于篇幅所限,没有把在服务器中的使用写下来。这篇文章主要写一下MINA如何在服务器中使用。 MINA框架在服务器端应用,目前我只知道两种部署方式。一种是通过main函数启动,一种是通过tomcat启动。 网上有很多,都是讲MINA如何在main函数中使用,但是在实际的web项目中,也有很多是通过tomcat来部署服务的。我刚好做了一个web项目原创 2018-02-04 14:47:39 · 617 阅读 · 0 评论 -
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 · 1772 阅读 · 0 评论 -
android获取应用签名
最近要集成支付宝框架,但是在集成的时候,需要填写应用的签名,就是下面这个东西。我懵逼了一阵子,想应用签名是个什么东西。但是网上给的好多感觉很复杂,有时候一知半解,所以我就自己总结了一下,经过各种上网查,应用签名好像就是SHA1值。但是我在eclipse中知道怎么获取,studio中却不知道,然后又是一阵子查找。总算有点成果,写下来,免得自己忘了。首先,先把自己的apk签名打包,这时候会生成原创 2016-03-22 17:56:17 · 657 阅读 · 0 评论