- 博客(744)
- 资源 (27)
- 问答 (6)
- 收藏
- 关注
原创 android Immutable bitmap passed to Canvas constructor异常
出现Immutable bitmap passed to Canvas constructor错误的原因是如果不用copy的方法,直接引用会对资源文件进行修改,而android是不允许在代码里修改res文件里的图片解决办法如下:使用BitmapFactory.decodeResource(getResources(), R.drawable.xiao).copy(Bit
2015-09-21 12:10:51 581
原创 Android 颜色渲染(九) PorterDuff及Xfermode详解
从上面我们可以看到PorterDuff.Mode为枚举类,一共有16个枚举值:1.PorterDuff.Mode.CLEAR 所绘制不会提交到画布上。2.PorterDuff.Mode.SRC 显示上层绘制图片3.PorterDuff.Mode.DST 显示下层绘制图片4.PorterDuff.Mode.SRC_OVER
2015-09-21 10:54:00 348
转载 Android应用进程间通信之Messenger信使使用及源码浅析
1 背景这个知识点是个low货,刚开始其实想在之前一篇文章《Android异步消息处理机制详解及源码分析》一文中作为一个知识点分析的,但是想了又想又觉得该放在后面进程间通信分析时再分析。然并卵,还是单独拿出来写一篇分析一下吧。提到Message和Handler其实大家都很熟悉,但是说到Messenger估计有些人还是不太常用的,更有甚者都能把Messenger拼写错误为Messag
2015-09-16 22:45:41 582
原创 Android实战技巧:深入解析AsyncTask
AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和Android实战技巧:多线程AsyncTask这里就不重复。AsyncTask引发的一个问题上周遇到了一个极其诡异的问题,一个小功能从网络上下载一个图片,然后放到ImageView中,是用AsyncTask来实现的,本身逻辑也很简单,仅是在doInBackground中用HT
2015-09-16 22:43:38 379
原创 android ListView 几个重要属性
由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和falseandroid:stackFromBottom="true" 第二是transciptMod
2015-09-16 09:16:15 405
转载 Android的ListView数据更新后,如何使最新的条目可以自动滚动到可视范围内?
在ListView的layout配置中添加 android:transcriptMode="alwaysScroll"[html] view plaincopyListView android:id="@+id/listView" android:layout_width="match_parent" and
2015-09-16 09:12:54 1022
原创 Android系统自带样式(android:theme)详解 (
android:theme="@android:style/Theme.Dialog" : Activity显示为对话框模式android:theme="@android:style/Theme.NoTitleBar" : 不显示应用程序标题栏android:theme="@android:style/Theme.NoTitleBar.Fullscreen" : 不显示应用程序标题
2015-09-14 16:32:20 510
原创 Java注解Annotation详解
注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。自定义注解及其应用1)、定义一个最简单的注解public @interfa
2015-09-11 16:16:16 476
原创 动态代理使用
动态代理使用java动态代理机制以巧妙的方式实现了代理模式的设计理念。代理模式示例代码public interface Subject { public void doSomething(); } public class RealSubject implements Subject { public void doSom
2015-09-11 15:36:45 475
原创 Java的IO流
/** * Reader的子类: * BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 * CharArrayReader:此类实现一个可用作字符输入流的字符缓冲区。 * InputStreamReader:InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。 * Fi
2015-09-11 14:55:51 581
原创 spanned android
项目中往往需要显示一段文本,如果对文本需要特定的效果,就要写自定义的span,这样的工作量会变得很大,目前android支持html格式的文本,下面就是我对android支持html的程度和使用方式的总结。 Android支持html 的两个接口 1 Spanned android.text.Html.fromHtml(String source)输入的参数为(html格式
2015-09-10 15:36:40 1531
翻译 通过重写ViewGroup学习onMeasure()和onLayout()方法
在继承ViewGroup类时,需要重写两个方法,分别是onMeasure和onLayout。1,在方法onMeasure中调用setMeasuredDimension方法void android.view.View.setMeasuredDimension(int measuredWidth, int measuredHeight)在onMeasure(int, int)中
2015-09-10 13:32:14 388
原创 Monkey测试简介
laozhu1124Monkey测试简介在android手机上做自动化测试,monkey比cts,Android UnitTest 好用多了,他其实是继承与adb shell中的一段的shell指令。一monkey测试的相关的原理monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异
2015-09-09 22:38:09 655
原创 继承多态
我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过Cat c = new Cat();实例化一个Cat的对象,这个不难理解。但当我这样定义时:Animal a = new Cat();这代表什么意思呢? 很简单,它表示我定义了一个Animal类型的引用,指向新建的Cat类型的对象。由于Cat是继承自它的父类Animal,所以An
2015-09-09 22:32:00 510
原创 activity-alias的使用
activity-alias是android里为了重复使用Activity而设计的。当在Activity的onCreate()方法里,执行getIntent().getComponent().getClassName();得到的可能不是这个Activity的名字,有可能是别名的名字,例如:在AndroidMenifest.xml有如下配置:[xhtml] view
2015-09-06 22:05:04 451
原创 ContentProvider浅析---写点你平时没注意到
(一) 前言ContentProvider是android组件之一,可以提供数据的跨应用程序访问,提供数据的跨进程无缝隙访问,所以是非常重要的东东。使用方法一般是复制内容到剪贴板代码:getContentResolver().query(Uri uri, String[] projection, String selection, String[] selectionArg
2015-09-06 21:06:53 598
原创 .Android四大组件
一.Android四大组件Android四大组件是Activity, Service, Content Provider, Broadcast Receiver。Activity作为程序界面,直接与用户交互Service运行在后台,没有界面,完成特定的功能ContentProvider维护应用数据,方便应用本身或其它应用访问Broadcast Receive
2015-09-06 21:02:07 367
原创 Eclipse添加Android library错误的原因
这两天把项目从本地转移到GIT上,本来我的Workspace是在D盘,现在因为感觉D盘不够用,就把GIT到的项目放到E盘了按照以往的用法,GIT下来以后再往属性里添加依赖库就OK了,但是这次怎么也无法成功,一直是红叉查询发现一个解释 http://cysnake.com/android-library-project-eclipse-bug/即在windows下
2015-08-26 13:57:32 527
原创 PorterDuff及Xfermode详解
利用ProterBuff.Mode我们可以完成任意2D图像测操作, 比如涂鸦画板应用中的橡皮擦效果,绘制各种自定义的进度,等等很强大的效果,下面请看具体的介绍: 1. Xfermode: Xfermode有三个子类 :AvoidXfermode 指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图)。
2015-08-25 21:53:32 392
原创 android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
手工设置文本与图片相对位置时,常用到如下方法:setCompoundDrawables(left, top, right, bottom)setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom)意思是设置Drawable显示在text的左、上、右、下位置。但是两者有些区别:se
2015-08-25 16:09:52 825
原创 android开发问题 Failed to pull selection
在eclipse中开发创建了一个sqlite数据库文件,为了查看数据库文件的内容,决定复制到PC上一看究竟,位置在data……里当我点击ddms文件浏览里的pull a file from the device按钮时,总是出错,提示Failed to pull selection后来思考是不是真机的文件目录没有读取权限的问题于是在网上寻找问题,由于本人是个菜鸟初学andro
2015-08-24 14:48:04 581
原创 淘宝客户端高性能高稳定性施用框架的构架
(个人建议:就是说做android,不管你是做设计,构建,管理,还是开发,按照淘宝的构建过程详细的了解一下,查一查相关的热点,进行总结,迭代总结,把这些概念变成下意思的习惯和思维方式,这一套练下来你去面试,或者是去吹牛逼都行。陶钧的微博:weibo.com\steveyzhang 可以互动一下哦。PPT 下载:http://download.csdn.net/my )淘宝设计
2015-08-24 12:22:32 518
原创 淘宝客户端高性能高稳定性施用框架的构架
看到淘宝如此强大的客户端,我不禁想你淘宝客户端的张毅(江湖名号:陶钧)在ADC中对于淘宝框架剖析讲解; 议程包含三大点: 淘宝 Android客户端开发的特点和挑战HOW TO: TaoBao Client Framework淘宝 Android客户端上的最佳实践 下面一一细说陶钧当日的讲解: -----淘宝 Android客户端开发的特点-
2015-08-24 12:20:19 667
翻译 wheelview源码
/* * Android Wheel Control. * https://code.google.com/p/android-wheel/ * * Copyright 2010 Yuri Kanivets * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not
2015-08-21 10:10:12 1126
原创 史上最详细的Android Studio系列教程四--Gradle基础
原文链接:http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了很多,所以暂且结合Stduio 1.0正式版与最新的Gradle语法来详细讲解下,小伙伴们直接跟我一步步来学习吧。什么是Gradle?Gra
2015-08-20 22:59:31 596
原创 DDMS下data文件夹打不开
为了查看安卓设备上某个应用的SQLite数据库内容,打开了DDMS,能看到data文件夹,但是打不开。可是mnt文件夹却是可以打开的,然后仔细查看两个文件夹的不同:data drwxrsw–xmnt drwxrwxr-xmnt drwxr-xr-x好像少了read权限。权限,data的other user权限里没有
2015-08-17 16:38:34 1203
原创 Receiver not registered.
2. 查看BroadcastReceiver API文档,了解到广播的onReceive方法执行完,然后广播就不再处于active状态了。所以当发出信息成功之后,通过Toast.makeText弹出提示告知用户,然后onReceive方法结束,广播的生命周期就结束了。从中还了解到onReceive方法中可以执行Toast.makeText()表现了广播的onReceive方法是在主线程中执行的,否
2015-08-13 16:14:51 1466
转载 天真无谐
一、前言好长时间没写blog了,主要还是工作上的事有点多,周末又得在家开发自己的app,所以时间真的不够用了,当然今天这篇文章主要就要说一下,工作两年的我如何从产品角度去做一个app,以及app的发布流程等。二、支持我在开始讲解这个项目之前,希望能够先去各大市场下载一个apk看看,首先是为了支持我一下,其次呢就是我在后面会介绍一些功能和技术实现,所以先使用一下,
2015-08-05 23:31:21 1582 1
原创 在代码中引入Null Object模式
相信大家一定在开发中见过并且写过类似这样的代码:[java] view plaincopypublic Book getBook(int id) { if (id 0) { return null; } return new Book(1, "Design Pattern", 100);
2015-08-05 14:30:32 654
原创 Mockito(二)--实例篇
学习了基本知识后,就可以实战了。Mockito的实际使用还是比较麻烦的。因为在实际使用中,最常遇到的就是需要模拟第三方类库的行为。比如现在有一个类FTPFileTransfer,实现了向FTP传输文件的功能。这个类中使用了apache的ftp类org.apache.commons.net.ftp.FTPClient;现在测试FTPFileTransfer 这个类中的
2015-08-05 11:25:04 547
原创 Mockito(一) -- 入门篇
Mockito是一种mock工具/框架。我理解EasyMock有点过时了,Mockito是现在比较流行的。什么是mock?说的直白一点,大家都知道unit test应该是尽可能独立的。对一个class的unit test不应该再和其他class有任何交互。现在有一个类,扫描一个目录并将找到的文件都上传到FTP server。该类对于不同的FTP响应(找不到FTP server 或
2015-08-05 11:24:09 441
原创 Groovy
Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动
2015-08-05 09:15:17 418
原创 Android Studio系列教程五--Gradle命令详解与导入第三方包
2015 年 01 月 05 日devtools本文为个人原创,欢迎转载,但请务必在明显位置注明出处!Android Studio + Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看、编译并导入第三方开源项目的方法。Sublime + Terminal编译并查看源码首先来给大家介绍一种简便并
2015-08-05 09:11:05 582
原创 Android Studio系列教程四--Gradle基础
2014 年 12 月 18 日devtools本文为个人原创,欢迎转载,但请务必在明显位置注明出处!其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了很多,所以暂且结合Stduio 1.0正式版与最新的Gradle语法来详细讲解下,小伙伴们直接跟我一步步来学习吧。什么是Gradle?Gradle是一种依赖管
2015-08-05 09:04:30 592
原创 android:src="@drawable/warning"
ImageView中XML属性src和background的区别:background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式,示例代码如
2015-07-31 15:51:11 3389
转载 10个学习Android开发的网站推荐
1. Android Developers作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会。2. Android Guides - CodePathCodePath是国外一个技术培训机构,主要培训iOS 和Android开发,而CodePath将Android Guides放在Githu
2015-07-30 12:24:56 776
C#+ArcEngine9.3基本功能开发源码
2014-12-03
Android的drawTextRun方法使用
2017-05-19
Android Studio中Gradle学习
2016-12-29
Python开发环境使用场景
2016-12-22
scroller的getScrollX和left的关系
2016-12-14
Android中动态添加RadioButton,设置监听获取的id不对啊!
2016-02-26
Android下拉刷新控件如何进行开发
2015-12-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人