- 博客(133)
- 资源 (15)
- 收藏
- 关注
原创 react native 动态添加/渲染组件
将组件放入到一个数组里面,然后在渲染的时候,将数组作为参数。render(){ var pages =[]; for (var i = 0; i < playList.length; i++) { pages.push( <Text key={i}>{playList[i]}</Text> ); } return
2016-08-18 11:43:30 10820 3
原创 react native不同组件间传递值
事件的订阅与发送:DeviceEventEmitter注册事件监听import { DeviceEventEmitter,} from 'react-native';class XiFan extends Component { componentDidMount(){ this.subscription = DeviceEventEmitter.addListener
2016-08-15 15:45:32 2219
原创 React Native 之安装过程及遇到的问题
背景本文在写时,react native的版本是v0.32.0-rc.0,react native cli的版本是1.0.0。本人是学Android的,过来学学react native,所以jdk、sdk、Android studio什么的配置环境,都默认是已经安装配置好的了,如果这些你还没有安装的话,可以网上查查资料先装起来吧。安装文档手册官方英文文档:http://facebook.github
2016-08-08 18:37:36 3876
原创 Android retrofit 日志拦截器
背景在使用Android retrofit+rxjava时,想获知网络请求的一些参数,方便调试,比如:请求地址、请求响应时间、请求响应消息体等内容,虽然部分可以通过每个接口进行获知,但是这样极其不方便,那么有没有可以统一设置的方法呢?请接下去看。日志拦截器retrofit是使用okhttp3,做为网络请求,okhttp3有个Interceptor接口,可以对请求和响应进行拦截。通过这个机制,我们可以
2016-06-22 15:17:53 8245 5
原创 Genymotion Unable to create Virtual Device:Connection timeout
遇到这个问题,很大可能是因为你之前有创建过模拟器,然后删除的时候没删干净,导致重新下载的时候出错。解决办法: C:\Users\Administrator\AppData\Local\Genymobile\Genymotion找到上述的路径,并删除Genymotion下的所有文件,包括文件夹,然后再重新下载模拟器即可。
2016-05-30 11:19:04 1157
原创 The APK file does not exist on disk
背景如果你使用Android studio 遇到这个问题,那么一般你是想对编译时生成的apk文件进行自定义命名,并且你的命名规则包含动态部分,比如,命名规则中使用了时间戳。由于gradle在执行编译命令和安装命令时有时间差,且调用了两次你的名称规则,导致编译出来的apk名称和安装时获取到的apk名称不一致,所以它就报找不到指定的apk文件了。场景一般修改编译后apk文件名,在gradle是这样配置的
2016-05-25 18:03:55 4881 6
转载 通道之间的数据传输
在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。transferFrom()FileChannel的transferFrom()方法可以将数据从源通道传输到FileChannel中(译者注:这个方法在JDK文档中的解释为将字节从给定的可读取字节通道传输到此通道的文件中)。下
2016-05-12 09:32:29 2179
转载 关于 Android 进程保活,你所需要知道的一切
出处早前,我在知乎上回答了这样一个问题:“怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?”。关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是极其不靠谱。前段时间,Github 还出现了一个很火的“黑科技”进程保活库,声称可以做到进程永。怀着学习和膜拜的心
2016-04-20 10:13:57 1610
原创 Android Studio compile project添加一个本地项目依赖包时,提示程序包不存在
问题情景在一个项目里,建了一个library项目和application项目,在application项目的build.gradle将library项目compile project进来,编译的时候都正常,但是运行的时候,提示程序包不存在。解决办法将library项目下的build.gradle->buildTypes{..}->minifyEnabled熟悉置为falsebuildTypes {
2016-04-13 16:22:19 14072 2
翻译 Java NIO Scatter / Gather
Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。 分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。 聚集(gat
2016-04-12 18:38:35 660
原创 TextView ClickableSpan onClickListener点击事件冲突
需求是这样的:TextView是在一个ListView item里面,TextView的文本需要格式。当有‘@’或者‘网址’时,将它们的文本高亮并且点击时进行跳转,当点击在‘@’或者‘网址’之外的地方时,要响应LivtView的item click事件。TextView的高亮是使用ClickableSpan实现的。前提: LivtView的item click事件我是通过item布局的最外层Vie
2016-04-08 17:57:25 8044 3
转载 Android Studio 2.0正式版 新特性
原文地址 中文翻译 Posted by Jamal Eason, Product Manager, AndroidAndroid Studio 2.0 is the fastest way to build high quality, performant apps for the Android platform, including phones and tablets, Android A
2016-04-08 09:30:29 1992
翻译 Java NIO Buffer
Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。Buffer的基本用法使用Buffer读写数据主要有4个步骤:数据写入buffer调用buffer.flip()从buffer读取数据
2016-04-07 09:03:14 614
原创 fresco 加载本地图片失败
可能你本地图片的名称包含有特殊符号,这时候在获取URI对象时,请使用Uri.parseFromFile(new File(path))不要使用Uri.parse("file://"+path)https://github.com/facebook/fresco/issues/1088提问的是我本人
2016-03-31 11:13:20 3269 4
翻译 Java NIO Channel
Java NIO Channels 和流有些许差异:Channels可以读和写,流通常只能是其中一种,读或者写Channels的读和写是异步的Channels总是将数据写入到Buffer或者从Buffer读取数据如上所述,数据从channel读取到buffer中,从buffer中写入到channel,如下图:Channel的实现下面几个方面是Java NIO Channel的重要实现部分:
2016-03-30 11:55:46 681
原创 CloseableReference: Finalized without closing
在ListView或者GridView使用fresco时,发生了异常:W/unknown:CloseableReference: Finalized without closing解决办法: 1、关闭硬件加速 2、改变图片尺寸,变小ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(
2016-03-29 16:27:32 2735 2
原创 Bitmap too large to be uploaded into a texture
在加载大图的时候,出现了该exception,简单的解决办法就是禁止硬件加速android:hardwareAccelerated="false"
2016-03-29 09:43:21 1248
翻译 Java NIO 概述
Java NIO 由以下几个核心组件组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其他的组件,如Pipe和FileLock,不过是配合这三个核心组件共同使用的工具类。因此,本章的概述将主要集中在这三个组件上。其它组件会在单独的章节中讲到。Channel
2016-03-28 15:10:41 584
翻译 Java NIO 教程
Java NIO(New IO)是Java另一个IO API(从Java 1.4开始),这意味着替代标准Java IO和Java网络API。与之前标准的IO相比,Java NIO提供一种不同的方法来处理IO。Java NIO: Channels和Buffers在标准的IO API中是使用字节流和字符流来工作的,但是在NIO中是通过管道(channels)和缓冲区(buffers)来工作的。数据总是从
2016-03-28 13:42:47 728
原创 android studio 1.5.1 创建java项目
概述使用Android studio 开发Android的项目的coder,都会有想单独测试一个java类的时候,那么本章就来说说怎么创建java项目。创建java项目1、在你的Android项目中,new 一个module,然后选择Java Library。2、编写main方法,如下:public class MyClass { public static void main(Str
2016-03-18 10:34:35 3279
原创 Fresco引起的在arm64位机器上找不到对应的so库
背景今天公司项目的应用,测试人员提了个bug,应用在查看pdf文档时崩溃了,看了下崩溃日志。java.lang.UnsatisfiedLinkError: dlopen failed: "libs/armeabi-v7a/libmupdf.so" is 32-bit instead of 64-bitlibmupdf.so就是mupdf编译来的so库,意思是说该so是32位的,需要使用64位替代。确
2016-03-09 15:14:52 7322 15
原创 Android Cordova 插件开发之插件开发过程中遇到的问题
前言项目中开始要使用cordova 进行插件开发,本章节意在记录在开发的过程中遇到的问题和解决方法。因此,该文章会不断更新,想到或遇到什么就记录一下,很随性,看心情。
2016-03-08 17:30:37 1935 5
原创 Android Cordova 插件开发之自定义插件生成安装包
前言在上一节,我们已经就Android端做了一个自定义的插件,但是它只是在Android平台上开发的插件,项目一执行cordova build命令,代码就没了。那么,本章节就是讲如何将自定义开发的插件做成一个安装包项目,提供给其他项目中使用的。创建安装包1、创建目录首先,创建项目根文件夹,然后,依次创建文件,项目结构如下我的项目名称叫DialogPlugin,目录结构: DialogPlugin
2016-03-03 18:50:07 5686 6
原创 Android Cordova 插件开发之编写自定义插件
前言本文适合Android+web的复合型人才,因为cordova本身就是混合开发,所以在Android开发的基础上,还要懂web相关技术(HTML+CSS+JS),但是也有例外,比如我,只需负责Android方面,web方面的交由其他web组人员开发。虽然,web略懂一点,但我主要还是搞Android开发的。编写自定义插件类本节的内容是,自定义一个dialog插件,供web调用,显示系统弹窗。
2016-03-03 18:48:40 21219 16
原创 Android Cordova 插件开发之创建项目
使用命令行创建项目cordova 创建项目的命令是cordova create <dir> <packageName> <projectName>第一个参数 < dir >:项目目录文件夹的名称第二个参数< packageName >:项目的包名第三个参数< projectName >:项目名称 那么,我们创建一个HelloWorld项目,通过命令行cd到项目要创建的根目录下,然后执行命令
2016-03-03 18:47:17 3767 1
原创 Android Cordova 插件开发之Cordova安装
概述最近项目中要使用cordova做插件开发,cordova是phonegap的开源版本,能使H5开发的应用能访问原生设备功能的能力,关于它的介绍,自行Google、baidu。之前,我并没有接触过phonegap或者cordova,所以刚开始也是网上查阅资料,但是网上很多教程cordova都是3.x\4.x版本的,而现在最新版本已经是6.x了。所以,决定基于cordova v6.0.0,写写关于C
2016-03-03 18:46:25 2989
原创 ListView 局部刷新
概述在使用ListView的时候,我们都会对列表数据进行更新,当数据变化时,我们会调用adapter的notifyDataSetChange方法去刷新列表。但是,该刷新方法是使整个列表都更新一遍(调用了adapter的getView方法)。而,我们往往只是更新了item中的某一项数据,如果刷新整个列表是不是显得太过于浪费了,特别是对于列表中有图片要显示的情况下,就会造成每次notifyDataSet
2016-03-02 11:39:26 1797
原创 TabPageIndicator 分割线
在使用TabPageIndicator自定义样式时,样式如下<!-- 指示器样式主题 --> <style name="StyledIndicators" parent="@style/ActivityTheme"> <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item> <
2016-02-26 10:53:16 2042
原创 Android Studio 添加第三方依赖后,控件属性不提示
首先,在添加了第三方依赖之后,clean下。如果属性还是不能提示,那么重启AS,然后再clean build下。记。
2016-02-24 11:58:29 3814 1
原创 fresco 两种判断图片是否已经缓存在SD卡上的方法
问题场景在使用fresco过程中,我们有这么种应用场景:在高清图片未缓存在硬盘时,显示的是缩略图(要服务器支持),当高清图片已缓存在硬盘时,显示高清图片。那么使用fresco如何判断一张图片是否已经缓存在硬盘上了呢?解决办法第一种方式:boolean isCacheInDisk = Fresco.getImagePipelineFactory().getMainDiskStorageCache(
2016-02-23 16:38:49 6429 2
转载 EditText支持多行同时支持imeOptions设置
本文出自:http://blog.sina.com.cn/s/blog_97eedec40100wwjd.html问题描述:EditText一旦设置了多行显示,键盘总是显示Enter键。有时候我们只需要文本输入多行显示,Enter键任然需要支持imeOptions设置,比如显示完成键而不是回车换行。如这如何做呢?问题分析以及解决:我们知道,当EditText弹出输入法时,会调用方法(TextView
2016-02-16 18:59:03 2913 1
原创 在android style.xml文件中使用自定义属性
直接使用属性名就行了 不用加命名空间了 代码如下:<?xml version="1.0" encoding="utf-8"?><resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="style_header_radius"> <item name="androi
2016-02-04 18:16:21 5699
原创 Multiple substitutions specified in non-positional format
原因是在Android的资源文件string.xml写错了<string name="get_reward">恭喜获得:金币$1%s 经验$2%s</string>把占位符给写错了正确的应该是,如下<string name="get_reward">恭喜获得:金币%1$s 经验%2$s</string>百分号在前,美元符号在后。记录。
2016-02-01 11:18:21 2398
原创 部分手机不能加载so文件,couldn't find *.so
背景当我们项目中使用到了.so库时,大部分手机能正常运行,但是部分手机在运行时,比如我们项目中使用到了mupdf这个开源的pdf查看器,里面需要使用到libmupdf.so,此时会报couldn’t find libmupdf.so错误,导致程序再浏览pdf文件时崩溃。原因一般情况下,当我们安装了应用时,项目中的.so库会安装到手机的/data/data/+包名+/lib 路径下,由于Android
2016-01-29 11:44:26 10837 3
原创 使用Android Studio发布私有库到仓库中心
介绍当在我们这行积累到一定程度,都会有自己的一些代码库,这些代码被多个项目使用。之前的做法是每次到新的项目中,就会把之前的代码拷贝过来,升级一下,或许会把一些纯java代码打包成jar包文件,这样项目中只要引用这个jar包就可以了,但是在Android中,我们可能还会用到一些资源文件,这样再想打包成jar包就比较麻烦了。再再升级下,我们可以使用Android Studio生成aar文件,这样就避免了
2016-01-28 18:03:49 3570 2
原创 使应用中的字体不受系统设置影响的两种方法
第一种使用dp来设置文字的大小第二种private void keepFontSize(){ Resources res = getResources(); android.content.res.Configuration config = new android.content.res.Configuration(); config.setToDe
2016-01-27 16:23:31 4832
原创 fresco自定义进度条ProgressBarImage
第一种:继承drawablepublic class ImageLoadingDrawable extends Drawable{ private Paint mRingBackgroundPaint; private int mRingBackgroundColor; // 画圆环的画笔 private Paint mRingPaint; // 圆环颜色
2016-01-26 14:45:04 4718
原创 fresco添加http header
今天使用fresco时,项目中在加载图片时添加了防盗链,需要在获取图片时添加header信息,研究了下fresco如何添加header,解决方案如下: 1、新建一个类ElnImageDownloaderFetcher,继承HttpUrlConnectionNetworkFetcher 2、将HttpUrlConnectionNetworkFetcher类的代码拷贝到新类 3、重写HttpURL
2016-01-25 16:14:10 3942 1
原创 Android ImageSpan不显示
在TextView中插入图片,我们一般是使用ImageSpan,但是在使用过程中,发现当TextView中一行未满时自动换行(这种情况一般是发生在中英文混排),插入在首部的ImageSpan不显示了,如下图: 原本在首部会有一个置顶的图标,但是由于换行导致ImageSpan不显示了。这里的解决方法是换了一种实现方式,使用Html.fromHtml的ImageGetter/** * 获取图
2016-01-22 11:46:15 6680 4
jenkins插件
2015-12-08
AutoScrollViewPage+viewpagerindicator实现广告自动播放功能
2015-02-25
信息系统项目管理师论文大全
2013-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人