- 博客(118)
- 资源 (24)
- 收藏
- 关注
原创 React Native - 持久化存储(AsyncStorage)的使用详解
一,基本概念1,AsyncStorage介绍AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,它对于App来说是全局性的。它用来代替LocalStorage。由于它的操作是全局的,官方建议我们最好针对AsyncStorage进行一下抽象的封装再使用,而且不是直接拿AsyncStorage进行使用。AsyncStorag
2017-09-20 18:42:44 5614
转载 Android RecyclerView详解以及滑动删除等
本文RecyclerViewDemoRecyclerView三种自带布局本文图片接口来自干货集中营http://gank.io/apiRecyclerView是support.v7包中的控件,可以说是ListView和GridView的增强升级版。官方对RecyclerView的描述是(不翻译不是因为我英语差啊,真的):A flexible view
2017-09-19 20:21:35 2333
原创 js中eval() 方法的使用以及一些特殊的使用方式
1、eval方法只能在非严格模式中进行使用,在use strict中是不允许使用这个方法的。2、eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值。如下: var code1='"a" + 2'; //表达式 v
2017-09-15 16:32:05 1400
转载 .9.png 图片在Android Studio里报错误 解决方案
1.Android studio的UI编辑能力比Eclipse要严格得多,点击show bad patches,如果存在bad patches就编译不过你需要在Android Studio里面修改好.9图2.把 .9图片放到dawable文件夹而不是mipmap文件夹3.开源项目里的资源都有一堆不合法PNG,那怎么办???找到一个方法:在build.gr
2017-09-12 18:42:59 1186
转载 AudioRecord 使用小结与注意事项
使用专门的线程读取数据,容易出现buffer overflow。使用 setRecordPositionUpdateListener时,要注意两个问题:一:1.启动录音后,要先read buffer,才会通知激活 listener。audioRecord.startRecording();audioRecord.read(buffer, 0, buffer.length)
2017-08-10 09:40:09 2843
原创 安卓byte数组转图片文件
在做项目时jni相关处理中,需要将jni库c++方面传递给java方的private void bytesToImageFile(byte[] bytes) { try { File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/aa
2017-08-07 15:24:02 3351
转载 Android截屏SurfaceView黑屏问题的解决办法
最近项目中有截屏的需求,普通的view截屏方法网上一搜一大把,但是SurfaceView截屏黑屏问题很多文章说的并不清楚,自己参考了一些别的博客,再加上自己的思考,算是找到了一种解决方案。1、首先看我们一般是怎么用SurfaceView的?123456789101112131415161718
2017-08-05 10:18:09 5703 2
原创 Android java 遍历Map的四种方法
public static void main(String[] args) { Map map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.print
2017-08-03 16:06:15 1223
转载 Android使用MediaCodec硬解码播放H264格式视频文件
前些时间,通过各种搜索加请教了好几个同行的朋友,在他们的指点下实现: RTSP+H264实时视频播放播放及把实时视频流保存到手机SD卡中,再对保存的H264格式文件进行播放等基本功能。 非常感谢这些朋友的无私帮忙,在实现功能的同时,我也把他们提供的一些代码加自己的修改简单记录下来,希望能给有需要的朋友一点点帮助。 这篇博客就是简单记录用MediaCodec +SurfaceV
2017-08-03 15:20:53 4024 2
转载 Android ListView Adapter notifyDataSetChanged 刷新没有效果
1、唠叨 最近发现使用ListView的时候,通过调用Adpater的notifyDataSetChanged方法不能刷新UI数据显示 2、原因分析 1).数据源没有更新,调用notifyDataSetChanged无效。 2).数据源更新了,但是它指向新的引用,调用notifyDataSetChanged无效(一般主要是这种情况,使用了新创建的list对象(List
2017-08-03 15:17:11 2397 1
转载 JAVA 通过 Socket 实现 TCP协议的通信
目录(?)[+]简介TCP简介TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP,下一篇博客会实现)是同一层内 另一个重要的传输协议。在因特网协议族(Int
2017-08-02 09:45:43 3487
转载 Rxjava2使用-构建事件总线(RxBus)代替原生广播
以前的项目中使用的是eventbus来实现事件的通知和订阅,rxjava2发布之后就使用了新的方式:Rxbus,减少添加的依赖库源码: 引入dependencies { // rxjava and rxandroid compile 'io.reactivex.rxjava2:rxjava:2.0.4' compile 'io.re...
2017-08-02 08:51:33 2882 1
转载 android TextView加边框&drawable开发
为TextView加边框,需要在drawable建xml文件,里面设置shape来设置文本框的特殊效果。[html] view plain copyxml version="1.0" encoding="utf-8"?> shape xmlns:android="http://schemas.android.com/apk/res/
2017-07-26 14:57:16 1546
转载 Android 通过接口传值
接口传值简单了说,就是在需要传值的那方定义接口,在接收数据的那方实现接口,数据就在需要实现的那个方法里,千万记住传值方的Listener一定是接收数据方的Listener。第一步:定义接口类:public interface Listener { void send(String s);}第二步:传递类发送数据:public class Data { public L
2017-07-26 13:58:08 1102
转载 安卓java 代码中动态实现 TextView的 DrawableTop属性
标签: androidxmldrawabletextviewruntime2015-09-26 11:07 5391人阅读 评论(0) 收藏 举报 分类:Android Step(59) 版权声明:本文为博主原创文章,未经博主允许不得转载。开发中我们想实现一种带图标的 TextView的时候 一般会使用 TextView的drawab
2017-07-26 13:18:27 1872
转载 安卓 ExpandableListView的使用详解
在Android开发中,我们知道经常会用到ListView来加载一些列表数据,但有时候ListView并不能完全十分满足我们的需求。比如如下图的效果用ExpandableListView实现起来就更方便点,我们直接用ExpandableListView,设置Group不能点击即可。好,费话不多说。下面详细介绍ExpandableListView的使用。 图(一)
2017-07-26 11:07:29 711
转载 Android将对象存储到SharedPreferences中
如果需要将一个对象存储到Android SharedPreferences中,可以用到下面的办法:以我的例子来说,我需要将一个标记账本的对象,其中元素为封面背景id(int)和账本名称(String)的对象存储至SharedPreferences。下面是我封装改账本(Book)的Bean:package beans;/** * Created by Chase o
2017-07-25 11:44:52 934
原创 安卓生成jni 头文件
1.首先找到jni本地函数的class文件路径。一般在D:\EsbicAecBranch\esbic-model\build\intermediates\classes\debug下或者D:\EsbicAecBranch\esbic-model\build\intermediates\classes\release下。注意:这是我的项目路径,我的jni函数的class文件是在一个引用的mode
2017-07-25 11:27:11 279
转载 Android ExpandableListView 中完美嵌套 GridView
在做项目的时候,想在 ExpandableListView 中嵌套一个 GridView,在实现的过程中,遇到了不少坑,所以写篇博客记录一下,也顺便帮助下和我一样的新手。我一直觉得,再多的文字,再多的代码片段,都不如写个小 Demo 更直观,所以在以后的博客中,我都尽量用小 Demo 来讲解,也给出源码。先上一张最终效果图:打开 Android Studio
2017-07-24 17:45:21 646
原创 Android实现计时与倒计时任务的五种方法
在购物网站的促销活动中一般都有倒计时限制购物时间或者折扣的时间。启动页页,广告页的倒计时任务。这些都是如何实现的呢?在最近的一个安卓客户端项目中恰好遇到了类似的问题,一开始使用的是Timer与 TimerTask, 虽然此方法通用,但后来考虑在安卓中是否有更佳的方案,于是乎共找到以下五种实现方案,最终我使用了方案五完成了此功能.效果如图:
2017-07-24 10:10:58 1661
转载 在Android应用中使用自定义证书的HTTPS连接
因为这部分才是本文的重点,要说得详细一点,所以单独做成一篇来说。安全地使用自定义证书的HTTPS连接方式终极解决方案是:把证书编译到应用中去,由应用自己来验证证书。生成KeyStore要验证自定义证书,首先要把证书编译到应用中去,这需要JSSE提供的keytool工具来生成KeyStore文件。参考《Java 安全套接字编程以及 keytool 使用最佳实践》,我试
2017-07-22 10:52:46 2296
转载 java(md5) 加密解密简单实现
Java代码 package test; import java.io.FileInputStream; class="java" name="code"> import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStre
2017-07-21 13:08:42 7196 1
原创 Java的MD5加密和解密
简单demo:import java.security.*; import java.security.spec.*; class MD5_test { public final static String MD5(String s) { char hexDigits[] = { '0' , '1' , '2' , '
2017-07-21 09:26:18 4560
原创 Java实现MD5加密及解密的代码实例分享
如果对安全性的需求不是太高,MD5仍是使用非常方便和普及的加密方式,比如Java中自带的MessageDigest类就提供了支持,这里就为大家带来Java实现MD5加密及解密的代码实例分享:基础:MessageDigest类的使用其实要在Java中完成MD5加密,MessageDigest类大部分都帮你实现好了,几行代码足矣:?123
2017-07-21 08:48:41 15106
转载 Android常用加密手段之MD5加密(字符串加密和文件加密)
前言安全问题一直伴随着互联网的成长,如何有效地保护应用程序的数据是每一个开发者都应该考虑和努力的事情。这篇文章介绍Android平台上常用的加密方式之MD5加密。MD5MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5
2017-07-20 13:49:41 782
转载 JNI中java类型与C/C++类型对应关系
在如下情况下,需要在本地方法中应用java对象的引用,就会用到类型之间的转换: 1)java方法里面将参数传入本地方法;2)在本地方法里面创建java对象;3)在本地方法里面return结果给java程序。 分为如下两种情况: 一、Java原始类型像booleans、integers、floats等从Java程序中传到本地方法中的原始类型可以直接使用,下面是jav
2017-07-19 11:39:33 479
原创 安卓 MediaCodec解码aac
上一篇博文介绍了如何用MediaCodec进行aac编码,这篇介绍如何解码,在解码上要注意的点是解码时要一帧一帧的喂给解码器而且得带adts头,另外要将头一帧的两个特殊字节用来对解码器进行配置,解码出来就是pcm编码的音频数据了,可以直接将pcm数据写进AudioTrack进行播放。[java] view plain copy/** *
2017-07-19 10:04:19 1556
原创 安卓MediaCodec编码aac
我们可以用AudioRecoder对音频进行采集,采集的音频是pcm编码的原始数据,通过MediaCodec编码成aac音频,这里要注意的是编码出来是aac裸流,是无法播放的,要播放的话必须在每一帧音频前加adts头,adts头包含音频数据的采样率,声道,帧长度等信息,必须有adts头才可以正确解码。还有就是编码时出来的第一帧是一个两个字节的数据,这个数据也是比较特殊的需要用来在解码时配置解码器,
2017-07-19 10:00:54 2976
转载 Android Switch控件修改样式
Android中自带的Switch控件在很多时候总觉得和整体系统风格不符,很多时候,自定义Switch是一种方法。但其实不用这么麻烦,安卓自带的Switch通过修改一些属性,也可以达到和自定义Switch差不多的一个效果。个人感觉,Switch的属性设置和其他控件还是有挺大区别的。因此,写下此文,方便有需要的同学参考。先上效果图:以上便是修改后效果
2017-07-17 13:56:18 3235 1
转载 安卓自定义ToastView
上效果:结构目录:代码解析:1、toast.xml布局很简单就是一个ImageView和TextView横向排列,不解释:[java] view plain copy"1.0" encoding="utf-8"?> "http://schemas.android.com/apk/res/android"
2017-07-17 10:49:22 1436
转载 Android底部Tab菜单栏(FragmentTabHost+ViewPager+Fragment)
Android开发中使用底部菜单栏的频次非常高,主要的实现手段有以下:TabWidget隐藏TabWidget,使用RadioGroup和RadioButtonFragmentTabHost5.0以后的TabLayout最近推出的 Bottom navigation今天带大家来探索下如何用Fragment+FragmentTabHost++ViewPager实现底部菜单栏目
2017-07-15 11:05:10 921
原创 Android点击图片保存到指定目录,并更新相册
本文是Android点击图片保存到指定目录,并更新相册。 另一种:android点击图片保存到media数据,并更新相册 地址:http://blog.csdn.net/lylddingHFFW/article/details/75134849 ImageView:ImageView android:id="@+id/textiv"
2017-07-15 10:00:55 4015 1
原创 Android音量控制调节
[java] view plain copy//音量控制,初始化定义 AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); //最大音量 int maxVolume = mAudioManager.getStreamMax
2017-07-14 13:15:49 1171
原创 Android唤醒、解锁屏幕代码实例
这篇文章主要介绍了Android唤醒、解锁屏幕代码实例,本文讲解了唤醒、解锁屏幕需要的权限和操作代码实例,代码中包含详细注释,需要的朋友可以参考下所需权限:复制代码 代码如下:复制代码 代码如下://锁屏、唤醒相关private KeyguardManager km;private KeyguardLock kl;pri
2017-07-13 14:25:36 9308 1
转载 安卓一像素Activity保活+动态广播
Android8.0马上就要发布,Google对于安卓市场上各种应用占据内存空间的问题不断进行内存完善,我们的应用进程很难再保持不死之身,以前的服务唤醒在5.0已经失效,现在我们尽可能的做到保活方式就是提高进程的优先级,本文介绍一种1像素Activity保活进程的实现(据说QQ也在用)。 其整个逻辑就是在手机屏幕黑屏时,我们启动一个1像素的Activity,其占用内存很小毕竟只有1像素嘛,无形
2017-07-13 08:39:29 1375 1
原创 Android数据库升级且表添加新列
今天突然想到我们Android版本升级的时候经常会遇到升级版本的时候在新版本中数据库可能会修改,今天我们就以数据库升级且表添加新列为例子写一个测试程序。首先在要创建一个数据库,一般我们先创建一个DbHelper,继承SQLiteOpenHelper,构造函数我们使用传递版本号的:public DbHelper(Context context, String name, in
2017-07-12 10:52:14 779
原创 Android 项目 SQLite数据库版本升级
Android使用SQLite数据库保存数据,那数据库版本升级是怎么回事呢,这里说一下。一、软件v1.0安装v1.0,假设v1.0版本只有一个account表,这时走继承SQLiteOpenHelper的onCreate,不走onUpgrade。1、v1.0(直接安装v1.0)二、软件v2.0有2种安装软件情况:1、v1.0 --> v2.0
2017-07-12 10:49:20 813
原创 安卓FragmentTabHost+Fragment+ViewPager+TabLayout仿今日头条
使用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab大多数应用程序都会在底部使用3~5个Tab对应用程序的主要功能进行划分,对于一些信息量非常大的应用程序,还需要在每个Tab下继续划分子Tab对信息进行分类显示.本文实现采用FragmentTabHost+TabLayout+ViewPager实现双层嵌套Tab,实现原理如下: 第一
2017-07-12 10:43:12 470
转载 自定义View----Android九宫格手势密码解锁
由于公司新的项目需要用到九宫格手势密码解锁的功能,于是觉得自己写一个。废话不多说,直接上效果图: 首选我们来分析下实现的思路: 1. 绘制出相对于这个View的居中的九个点,作为默认状态的点 2. 点击屏幕的时候是否点击在这九个点上 3. 在屏幕上滑动的时候,绘制两个点之间的线条,以及选中状态的点 4. 手指离开屏幕的时候判断手势密码是否正确,如若错误这把错误状态下的点
2017-07-05 10:30:35 1333
转载 android 九宫格手势密码 纯代码实现
这几天项目中要加九宫格手势密码,在网上搜了大量资料,大部分都是以图片实现为主,集合部分代码,实现纯代码九宫格。好了,不废话了,先上图。效果大概就是这样,逻辑自己实现,我只上这个自定义控件的代码。1. point.Java 点的位置[java] view
2017-07-05 10:20:00 4861 1
安卓realm数据库升级
2017-10-20
安卓屏幕保护
2017-10-19
ViewPager指示器,实现小圆点效果,简洁好用
2017-09-20
安卓屏幕适配项目实用方案dimens文件生成器
2017-09-20
Android ViewPager白点加指示器实现类似广告滚动的效果
2017-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人