Welcome 微信登录

首页 / 移动开发 / Android

GreenDao 3.2.0 的基本使用

GreenDao 3.2.0 的基本使用

前言Android开发中我们或多或少都会接触到数据库。Android中提供了一个占用内存极小的关系型数据库-SQLite。虽然Android系统中提供了许多操作SQLite的API,但是我们还是需要手动去编写SQL语句,这经常会出现一些莫名其妙的问题(😂,不要问我为什么)。所以便出现了许多ORM(对象关系映射)框架。其中比较著名的有GreenDao、OrmLite、Litepal等。下面主要介绍一下GreenDao,我平时用的最多的也是Gr...
fragment中的add和replace方法的区别浅析

fragment中的add和replace方法的区别浅析

使用 FragmentTransaction 的时候,它提供了这样两个方法,一个 add , 一个 replace ,对这两个方法的区别一直有点疑惑。我觉得使用 add 的话,在按返回键应该是回退到上一个 Fragment,而使用 replace 的话,那个别 replace 的就已经不存在了,所以就不会回退了。但事实不是这样子的。add 和 replace 影响的只是界面,而控制回退的,是事务。public abstract FragmentTransa...
android 关于利用签名的SHA1进行安全校验的方法之一(推荐)

android 关于利用签名的SHA1进行安全校验的方法之一(推荐)

最近做安卓项目中使用到了百度地图的API,在申请百度地图key的时候,需要我们填入“签名的SHA1”和“客户端包名”,然后百度为我们生成一个key。于是就引发了思考,百度为何需要我们客户端签名的SHA1值呢?第一想法就是:百度拿我们输入的参数SHA1和包名进行一些列算法计算,生成一个key返回给我们。为了证明这个想法,写了demo进行测试,android获取包名的方法很简单,但是我们还需要从客户端中获取keystore的指纹SHA1。进行各种资料的查找和分...
Android Fragment 和 FragmentManager 的代码分析

Android Fragment 和 FragmentManager 的代码分析

这两天在研究插件化编程,在使用 Fragment 碰到了一些问题,于是查看源码,顺便分析了一下 Fragment 和 FragmentManager 以及其他几个 API 的原代码,看看他们是怎么工作的。我们知道 Fragment 有个 onCreateView() 方法,这个方法在 Fragment 创建 View 的时候被调用,并且返回一个 View 对象。那么 onCreateView 在什么时候被调用呢,咱们在 Fragment 这个类里找到了一个...
Android自定义View实现仿1号店垂直滚动广告条代码

Android自定义View实现仿1号店垂直滚动广告条代码

效果图展示,图片有点卡,耐心看会,原程序是很流畅的实现步骤:声明变量初始化画笔、文本大小和坐标onMeasure()适配wrap_content的宽高onDraw()画出根据坐标画出两段Text监听点击事件在Activity中实现点击事件实现原理(坐标变换原理):整个过程都是基于坐标Y的增加和交换进行处理的,Y值都会一直增加到endY,然后进行交换逻辑步骤一:声明变量由于1号店是两句话的滚动,所以我们也是使用两句话来实现的private Paint mPa...
Android MarginDesign控件TabLayout导航栏使用详解

Android MarginDesign控件TabLayout导航栏使用详解

TabLayout的使用简单介绍比如在平常的项目中实现这样的效果,一般都是都会使用viewPageIndicate等几个开源框架直接实现,或者使用自定义的HorizontalScroll再配合ViewPage+Fragment实现。在谷歌推出marginDesign之后,实现这种效果可以直接使用TabLayout实现。另外Tablayout可以通过自定义View自定义导航栏的效果。这样使用的时候更加灵活多变。首先需要导入design包在app的build....
Android中极简的js与java的交互库(SimpleJavaJsBridge)

Android中极简的js与java的交互库(SimpleJavaJsBridge)

前言最近接触android中js与java交互的东西很多,当然它们之间的交互方式有几种,但是我觉得这几种交互方式都存在一定的不足,这是我决定编写SimpleJavaJsBridge这个库的关键原因。我会按以下顺序进行本文章:现有js与java通信方案及不足js与java完美通信方案设计SimpleJavaJsBridge现在进入正题1. 现有js与java通信方案及不足先来说明一点js与java通信,指的是js既可以给java发送消息,同时java也可以给...
Android 自定义通用的loadingview实现代码

Android 自定义通用的loadingview实现代码

功能1、显示加载视图,加载失败的时候显示加载失败视图,数据为空时显示数据为空视图,支持为失败视图设置点击事件重新加载数据。2、支持个性化设置,自定义设置 加载、失败、空数据视图。先放一张效果图压压惊实现实现思路其实就是一个FrameLayout里添加三个布局做处理显示隐藏,自定义视图其实就是替换里面的view ,代码比较简单,如果直接看过我的自定义view系列文章,或者对自定义view有所了解,都很容易看懂,所有直接上代码了。具体代码Java 代码publ...
Android:如何编写“万能”的Activity

Android:如何编写“万能”的Activity

前言自己android开发也有些年头了,每每回想起作为初学者的时候自己写的代码,自己会有种喷自己的冲动,代码写的太渣了。因此想着自己要总结下以前代码中的不合理的地方,希望能给初学者一些帮助。我希望这是一个系列的文章。本节内容一个“万能”的Activity是什么样子,“万能”的Activity有哪些不好的地方开始编写“万能”的Activity作为了一个初学者,有可能会有好多的朋友把Activity写的很“万能”,当然没有更好。那我就以一个登陆模块为例子,来说...
Android:“万能”Activity重构篇

Android:“万能”Activity重构篇

前言写Android:如何编写“万能”的Activity的这篇文章到现在已经好久了,但是由于最近事情较多,写重构篇的计划就一直被无情的耽搁下来了,借这几天还算有点空余时间,把自己这桩心事了解下。其实大家也知道Android:如何编写“万能”的Activity的这篇文章只是个引子,其实我真正想引出的是mvp设计模式,因为最近自己最近在用mvp做项目,自己对mvp有一些感悟,因此我将用mvp进行“万能”activity的重构。同时也有一些朋友与我交流mvp,他...
使用Timer实现网页匀速加载的进度条样式

使用Timer实现网页匀速加载的进度条样式

在使用WebView加载网页时有时候网速等原因加载比较慢时,为了避免在加载网页的时候出现一片空白的区域,给用户很不好的体验感,我们往往在加载的时候添加一个进度条,使用户直观的感受到网页加载的进度,通常我们可以通过WebChromeClient里面的onProgressChanged()方法获取到当前的网页加载进度,但是当我们使用时会发现他的网页加载进度不是一点一点加载的,也许一下就加载到50%下一秒直接加载到80%,如果我们将其设置给progressBar...
Android图片压缩(质量压缩和尺寸压缩)

Android图片压缩(质量压缩和尺寸压缩)

在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成缩略图。两种方法都实装在了我的项目中,结果却发现在质量压缩的模块中,本来1.9M的图片压缩后反而变成3M多了,很是奇怪,再做了进一步调查终于知道原因了。下面这个博客说的比较清晰:android图片压缩总结总 结来...
详解Android使用Socket对大文件进行加密传输

详解Android使用Socket对大文件进行加密传输

前言数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽从而起到保护信息的安全的作用。项目中使用Socket进行文件传输过程时,需要先进行加密。实现的过程中踏了一些坑,下面对实现过程进行一下总结。DES加密由于加密过程中使用的是DES加密算法,下面贴一下DES加密代码...
一个Activity中多个Fragment实现沉浸式状态栏的解决方法

一个Activity中多个Fragment实现沉浸式状态栏的解决方法

项目中遇到一个问题:一个Activity有多个Fragment,每个Fragment的沉浸式状态栏不一样,有的是红色,有的是黑色,有的是一张图片(图片的一部分在状态栏中显示),并且要要兼顾虚拟按键(常说的导航栏)遮盖住布局导致自己布局中的某些按钮功能被虚拟按键拦截的问题。网上没有找到完全符合的解决方案,现在说一下我自己的思路,因为自己知识有限,不知道有没有更好的方法,希望对一些人能有帮助。思路如下: 要解决某些型号的手机导航栏遮盖布局的问题,一般是在xml...
Android使用token维持登陆状态的方法

Android使用token维持登陆状态的方法

什么是tokentoken(令牌)是一串唯一的字符串,通常由服务端生成,在注册完成时返回给客户端,用来标识此用户,客户端将此字符串存储在本地。在以后的网络请求时,客户端先查询本地的token,如果有则直接使用此令牌进行网络请求,没有则提示未登录,转到登陆注册界面。 此外,还可以在服务端或者客户端添加过期判别机制。token的作用token可以显著减少服务端对用户表的查询,同时使用户不必每次都登陆,提高了系统的可用性与健壮性。使用SharedPreferen...
详解Android应用开发--MP3音乐播放器代码实现(一)

详解Android应用开发--MP3音乐播放器代码实现(一)

需求1:将内存卡中的MP3音乐读取出来并显示到列表当中1.从数据库中查询所有音乐数据,保存到List集合当中,List当中存放的是Mp3Info对象2.迭代List集合,把每一个Mp3Info对象的所有属性,保存到Map对象当中3.定义一个List集合,把Map对象添加到List集合当中4.通过定义一个SimpleAdpter,调用setAdpter方法,将数据显示到列表当中/** * 用于从数据库中查询歌曲的信息,保存在List当中 * * @retur...
Android实现第三方登录的上拉展开,下拉隐藏,下拉隐藏示例

Android实现第三方登录的上拉展开,下拉隐藏,下拉隐藏示例

Android的UI和交互是很重要的一部分,直接影响到用户对软件的体验。随着项目经验的积累,发现Android中动画的运用越来越重要。本篇文章抽出了项目登录界面中实现的第三方登录,用户可以上拉展开,下拉隐藏第三方登录这么一个效果,提高用户和软件的交互性。实现效果:(1)activity_main.xml<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:...
Android滑动删除数据功能的实现代码

Android滑动删除数据功能的实现代码

今天学习了新的功能那就是滑动删除数据。先看一下效果我想这个效果大家都很熟悉吧。是不是在qq上看见过这个效果。俗话说好记性不如赖笔头,为了我的以后,为了跟我一样自学的小伙伴们,我把我的代码粘贴在下面。activity_lookstaff.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.andr...
Android Studio导入Eclipse项目的两种方法

Android Studio导入Eclipse项目的两种方法

Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Studio。1. 直接导入打开Android Studio,如果里面已经打开了项目,选择关闭当前的项目,会弹出一个Welcome对话框:选择Import project (Eclipse ADT, Gradle, etc.),然后再选择要导入的Eclipse项目:...
<< 1 2 3 4 5 6 7 8 9 10 >>