android基础
文章平均质量分 86
介绍android开发基础知识,包括组件的简单使用以及一些常见问题的解决方式等。
_江南一点雨
Java攻城狮
展开
-
launchMode使用详解
launchMode是很基础但是也很容易被忽视的问题,一个高性能的手机App不仅仅是代码完成的非常棒,也包括launchMode的合理使用。一个应用中,到底哪些Activity应该始终保持一个实例,哪些可以多次实例化,哪些要与其他应用共同分享使用,下面我们来慢慢分析。1.standardstandard是标准启动模式,也是默认启动模式,这种情况下,不管当前Back Stack(回退栈)中有没有要启原创 2015-10-31 11:50:55 · 7607 阅读 · 7 评论 -
android开发之使用上下文菜单
android中的上下文菜单类似于PC上的鼠标右键单击,不同的是android上没有鼠标这一概念,更谈不上右键单击,在android中,一般是长按某个View,调出上下文菜单。与OptionsMenu不同的是,ContextMenu是一个针对View的菜单,它绑定在某一个View上,而OptionsMenu是属于一个Activity的。现在大部分浏览器都有长按复制的功能,如下图:这种效果的实现是使原创 2015-10-27 16:10:44 · 15924 阅读 · 0 评论 -
android开发之shape详解
很多时候,使用shape能够实现的效果,你用一张图片也能够实现,但问题是一张图片无论你怎么压缩,它都不可能比一个xml文件小,因此,为了获得一个高性能的手机App,我们在开发中应该遵循这样一个原则:能够用shape实现的效果尽量不使用图片来实现。今天我们就一起来看看shape的使用。首先,使用shape画的图形,这个xml文件的根节点是shape,示例代码如下:原创 2015-10-26 20:39:25 · 7896 阅读 · 0 评论 -
android开发工具类之获得WIFI IP地址或者手机网络IP
有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: 第一个权限是获得WIFI的IP地址需要使用的,第二个权限是获得移动网络的IP需要使用的,代码如下: public class GetIPAddressUtil { public s原创 2015-10-24 19:49:15 · 6480 阅读 · 2 评论 -
android开发之ExpandableListView的使用,实现类似QQ好友列表
由于工作需要,今天简单研究了一下ExpandableListView,做了一个类似QQ列表的Demo,和大家分享一下。 效果图如下: 先来看看主布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too原创 2015-10-19 23:36:51 · 7213 阅读 · 5 评论 -
android使用属性动画代替补间动画
本文参考Android属性动画完全解析(上),初识属性动画的基本用法 android3.0之前一共有两种动画,分别是frame动画和tween动画,关于这两种动画如果不了解可以查看我之前的文章android之frame动画详解 和android之tween动画详解 ,frame动画就是逐帧动画,把多张图片放在一起连续播放实现一种类似于gif图片的动画效果,tween动画就是补间动画,主要是对图像进行原创 2015-10-17 11:45:23 · 3390 阅读 · 1 评论 -
怎么在我们的App中集成条码扫描功能?
现在很多App都有条码扫描功能,有的手机比如某米在照相机中集成了条码扫描功能,但是还有一部分手机没有这样的集成,比如韩国某星,需要自己下载一个条码扫描App。今天我们就来看看怎么在自己的App中集成一个条码扫描的功能。本文源码下载地址http://download.csdn.net/detail/u012702547/9101419先来看张效果图: 自己开发一个条码扫描显然是非常不现实的,我们可以原创 2015-09-12 18:34:12 · 5446 阅读 · 4 评论 -
android开发之自定义AutoCompleteTextView
AutoCompleteTextView,很多人都用过,有些情况下使用Google提供的ArrayAdapter作为适配器就可以完成需求,但是在实际开发中,我们经常需要开发自定义适配器来完成开发工作。今天就来看看怎么自定义这样一个AutoCompleteTextView。 假设我们有一个Book类,Book有四个属性,id,name,author,price,pinyin,我希望在AutoComp原创 2015-09-24 16:54:08 · 7518 阅读 · 13 评论 -
android开发之使用拼音搜索汉字
国庆回了趟家,昨天真不想走,离家近的感觉太好。唉,不扯这些,说说今天的正事吧。 上篇博客中介绍了自定义AutoCompleteTextView ,但是用到了一个很蹩脚的技术,就是我们事先把每个汉字的拼音当作一个字段输入进去了,在实际的开发中肯定不会这样做,我们要通过代码自动生成汉字的拼音,就像我们的手机通讯录,比如我们要查找“张三”这个人,我们只需要输入“zs”、“cs”或者“zhangsan”、原创 2015-10-09 19:38:30 · 5875 阅读 · 4 评论 -
在Eclipse中使用Git
Git接触也算比较久了(但一直懵懵懂懂,命令看了又忘了),写博客也有一段时间了,但是一直没想到这两个东西会联系到一起。我的习惯是写博客之前自己先做一个Demo,把问题都搞清楚再开始写,之前写博客都是把代码上传到百度云盘供需要的同学下载,后来见到有许多同学喜欢把自己的项目搞到GitHub上,感觉还不错,于是,我也跃跃欲试,今天尝试了一下,感觉还不错。写下来和大家分享。首先在Eclipse中安装EGit原创 2015-10-09 20:33:37 · 5690 阅读 · 0 评论 -
OKHttp的简单使用
一方面,最近关于OKHttp的讨论甚嚣尘上,另一方面,我最近也更新了android6.0,发现在6.0中HttpClient不能使用了,于是决定抽时间也看一下OKHttp,总结了一点东西,与大家分享。以前读书的时候在学校用过GitHub上的一个开源控件AsyncHttpClient,当时解决了不少问题,上传图片以及download都能实现,感觉还不错,这次看完OKHttp,暂未发现两者在功能上的差异原创 2015-10-11 12:39:22 · 5710 阅读 · 1 评论 -
android开发之记录ListView滚动位置
这个问题本身不难,但是由于项目中的需求太过于复杂,结果导致这个问题变得不是那么容易实现。在网上一搜,结果如下: 我不知道是who copy who?反正介绍的所谓的三种方法,第一种都是无法运行的,很明显的bug,第二三种方法都是入门级知识,这几位大哥写博客自己都不先运行一下吗?唉,不吐槽了,说说我的解决方案吧:在需要记录滚动位置的地方执行下面的操作:int scrollPos = refreshL原创 2015-09-06 17:35:26 · 4745 阅读 · 4 评论 -
关于weight属性使用的一些细节
之前被这个属性困扰过好久,今天一个偶然的机会,终于把这个搞清楚了,现在与大家分享一下。假设我们要在一个LinearLayout布局中显示两个按钮,button1和button2,button2的宽度是button1的二倍,正常情况下使用weight应该是这样的:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi原创 2015-08-29 18:17:43 · 3558 阅读 · 4 评论 -
RecyclerView实现瀑布流效果(图文详解+源码奉送)
最近有时间研究了一下RecyclerView,果然功能强大啊,能实现的效果还是比较多的,那么今天给大家介绍一个用RecyclerView实现的瀑布流效果。先来一张效果图:看看怎么实现吧: 整体工程目录结构: 这里要特别强调一点,有人可能不知道去哪里找android-support-v7-recyclerview.jar这个文件,其实它就在你下载的sdk目录下,我的是在D:\Program Fil原创 2015-08-29 13:02:59 · 5445 阅读 · 3 评论 -
android开发之定制ViewPager滑动事件
明天还要加班,苦逼的程序猿,简单说说最近遇到的一个问题吧。 我在viewpager+fragment学习笔记中简单介绍过ViewPager+Fragment的用法,其实并不难,当时实现了一个如下图所示的效果:然而,在实际开发中这一点技术可能根本不够用,项目中会有各种各样奇葩的需求,我最近就遇到了一个怪异的需求,捣鼓之后还是解决了,今天和大家聊聊。由于涉及到公司项目,我在这里就使用我自己制作的一个D原创 2015-08-21 21:13:17 · 2507 阅读 · 0 评论 -
下载好一个android软件之后,怎样自动提示安装?
最近在做毕设,里面牵涉到版本更新,当有新版本时可以下载新版本,下载完成之后提示安装。那么怎么实现下载完成之后提示安装呢?原创 2015-04-15 11:30:50 · 7518 阅读 · 1 评论 -
android使用模拟机测试时,若要联网IP地址该怎么写?
android使用模拟机测试时,如果服务器也是本机,那么IP地址如果写为localhost或者127.0.0.1,这样其实是不能访问到本机上部署的服务端,那么该怎么写呢?很简单,把IP地址改为10.0.2.2,这样就可以访问到部署在本机上的服务了。原创 2015-04-17 19:58:56 · 7593 阅读 · 0 评论 -
android之tween动画详解
android中一共提供了两种动画,其一便是tween动画,tween动画通过对view的内容进行一系列的图像变换(包括平移,缩放,旋转,改变透明度)来实现动画效果,动画效果的定义可以使用xml,也可以使用编码来实现。 下面我们逐一查看tween能够实现的动画效果。 先看看工程的整体结构吧:我们要实现的效果图如图点击按钮则执行相应的动画操作。布局文件activity_main.xml<Linear原创 2015-05-13 20:04:28 · 9732 阅读 · 3 评论 -
android之frame动画详解
上一篇我们说了android中的tween动画,这一篇我们说说frame动画,frame动画主要是实现了一种类似于gif动画的效果,就是多张图按预先设定好的时间依次连续显示。 新建一个android项目,名字叫做frameTest,在res文件夹下新建一个文件夹叫做anim,我们的frame动画的xml文件就放在这里。 在anim中新建一个frame.xml文件,内容如下:<?xml versi原创 2015-05-14 09:54:37 · 7864 阅读 · 3 评论 -
android之Java+html+javascript混合开发
android开发,除了使用原生态的开发方式之外,还可以使用java+html+javascript混合开发的方式来开发,这样可以节省大量的开发时间,同时还可以使不同设备的用户获得相同的用户体验。好了,废话不多说,先来看看今天要做什么。 主要是实现一个简单的注册功能,先用jquery mobile的方式写一个简单的注册页面,点击提交按钮之后跳转到一个新的activity中,同时把用户的注册信息显原创 2015-05-14 22:21:57 · 11736 阅读 · 1 评论 -
android开发之手势识别
android开发之手势识别原创 2015-05-14 22:54:08 · 7872 阅读 · 0 评论 -
android开发之国际化
国际化,听起来高大上,做起来很简单。 我们来实现一个简单的效果,让应用根据系统的语言来做不同的显示,假如android系统默认是英语,应用就以英文的形式显示,如果android系统默认是中文,则应用就显示中文。 新建一个工程,名字叫做I18N,要做国际化,字符串的显示一定要按android规定的来,就是要显示的文字都定义在string里,一般情况下,新建的项目中会有一个values文件夹,va原创 2015-05-15 11:15:22 · 7176 阅读 · 0 评论 -
android开发之单点触摸
相对于多点触摸,单点触摸还是很简单的。 新建一个工程,先看看布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"原创 2015-05-15 20:13:07 · 8350 阅读 · 1 评论 -
android中的样式和主题
有的时候我们一个页面要用很多个textview,而且这些textview的样式非常相像,这种情况下我们可以把这些样式抽取出来,然后在每个textview中引用即可,这样修改起来也方便。我们来看一个简单的例子,在一个页面中有三个textview,每个textview显示内容不同但是样式都相像,先来看看显示效果:布局文件:"http://schemas.android.com/apk/原创 2015-05-15 21:22:09 · 7300 阅读 · 0 评论 -
android自定义控件之模仿优酷菜单
去年的优酷HD版有过这样一种菜单,如下图:应用打开之后,先是三个弧形的三级菜单,点击实体键menu之后,这三个菜单依次旋转退出,再点击实体键menu之后,一级菜单会旋转进入,点击一级菜单,二级菜单旋转进入,点击二级菜单的menu键,三级菜单旋转进入,再次点击二级菜单的旋转键,三级菜单又会旋转退出,这时再点击一级菜单,二级菜单退出,最后点击实体menu键,一级菜单退出。总体来说实现这样的功能: (1原创 2015-05-19 11:50:46 · 8054 阅读 · 2 评论 -
android自定义控件之滚动广告条
在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图:其实在github上有实现这种效果的控件,不过这东西做起来也是很简单,我们今天就来看看该怎么做。先来看看布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:原创 2015-05-19 15:47:42 · 10425 阅读 · 7 评论 -
android开发之AlertDialog点击按钮之后不消失
最近有这样一个需求,我需要用户在一个弹出框里输入密码来验证,验证成功当然好说,但是如果验证失败则需要把alertdialog的标题改为“密码错误,请重新输入”,并且这个alertdialog还不能消失,要等待用户继续输入。 那么怎么实现点击确定或者取消按钮之后dialog不消失呢?// 不关闭dialog原创 2015-07-15 18:07:40 · 2770 阅读 · 2 评论 -
修改android应用包名
由于项目需要,要修改已经开发好的应用包名,这本身很简单,但是如果你没找到门道,可能会白白浪费许多时间。 修改包名有三个地方要改,这三个地方的修改一定要按顺序来,否则你可能会遇到许多不必要的麻烦。 1.修改清单文件 2.重新在Java文件中导入R文件 1改完之后系统就会报错,这是因为R文件找不到了,这时要在每个Java文件中重新导入R文件 3.修改Java文件的包名 执行完步骤2之后,原创 2015-07-16 22:48:45 · 4474 阅读 · 4 评论 -
AndroidManifest.xml中的application中的name属性
被这个不起眼的属性折磨了一天,终于解决了。 由于项目需要,要合并两个android应用,于是拷代码,拷布局文件,拷values,所有的都搞定之后程序还是频频崩溃,一直没有找到原因,学android时间也比较久了,但是清单文件中的application节点的name属性以前一直没有重视过,甚至没有用过这个属性。 由于整合后的程序频频崩溃,其他地方都没有问题,只有这个属性这里有区别,于是我就怀疑是这原创 2015-07-17 16:51:54 · 8532 阅读 · 1 评论 -
android开发之this.finish()的使用
在一个Activity用完之后应该将之finish掉,但是,之前在学校里自己摸索着开发时并没有太注意这个问题,因为activity无论是否finish掉对功能的影响貌似都不是那么明显(这是读书时候的观点),因此也就没有仔细考虑过activity合适finish这个问题。最近在公司的项目里遇到这个问题,于是就总结了一下。假设我们有三个activity,分别叫做A、B、C第一种情况: 我们先从A跳转到原创 2015-07-18 19:05:30 · 8415 阅读 · 2 评论 -
android开发之调试技巧
我们都知道,android的调试打了断点之后运行时要使用debug as->android application 但是这样的运行效率非常低,那么我们有没有快速的方法呢? 当然有。 我们打完断点之后,不使用debug as 而是使用run as,运行之后,打开ddms,如图,选中调试的设备。然后点击上面的绿色按钮,这个时候再把断点挂上然后在运行android应用的过程中当运行到断点处就会停下来原创 2015-07-18 21:30:07 · 2167 阅读 · 0 评论 -
android开发之broadcast学习笔记
android中的广播用的太多了,今天稍微总结一下。 按注册方式分为两种:1.静态注册广播: 静态注册广播就是在androidManifest.xml文件中注册广播,假设我们要实现这样一个效果,在一个activity上点击按钮,发送一条广播,这条广播弹出一个toast,显示“静态”二字。先看看广播接受者:public class MyBroadcast extends BroadcastRece原创 2015-07-19 16:33:10 · 2004 阅读 · 0 评论 -
viewpager+fragment学习笔记
有暇,总结一下viewpager+fragment的使用。 先来看看效果图: 有三个标题,三个fragment,滑动时标题的颜色会随着变化。MainActivity.javapublic class MainActivity extends FragmentActivity { private ViewPager vp; private Fragment f1, f2, f3;原创 2015-07-20 13:02:42 · 2485 阅读 · 0 评论 -
android反编译经验谈
反编译这事,找对了工具其实非常简单。 反编译工具下载地址http://pan.baidu.com/s/1eQvshwu android的反编译要经过两个步骤: 1.把dex文件转为jar 2.jar转为Java 下面说说详细步骤: 1.解压apk文件,得到classes.dex文件,把这个文件拷贝到dex2jar工具的目录下 在命令行进入到这个目录,并执行如下命令: 执行完后,d原创 2015-07-20 16:12:39 · 2036 阅读 · 2 评论 -
android开发之Notification学习笔记
今天总结了一下Notification的使用,与大家分享一下。 MainActivity.java:本文参考:http://www.jb51.net/article/36567.htm,http://www.cnblogs.com/linjiqin/archive/2011/12/14/2288074.htmlpublic class MainActivity extends Activity {原创 2015-07-20 18:08:24 · 2180 阅读 · 0 评论 -
android开发之service详解
service作为android的四大组件之一,其重要性可想而知,在开发中,我们经常把一些不需要与用户进行交互的工作放在service中来完成,service运行在后台,这样有些人可能会产生错觉,以为service是运行在新线程中,其实不然,service也运行在主线程中,因此不能在service中进行耗时操作,否则会报ANR异常,但是我们可以在service中新开线程来进行耗时操作,比如下载等等。原创 2015-07-21 16:13:23 · 2129 阅读 · 0 评论 -
android开发之使用Messenger实现service与activity交互
service与activity交互的方式有多种,这里说说使用Messenger来实现两者之间的交互。Service程序public class MessengerService extends Service { final Messenger mMessenger = new Messenger(new IncomingHandler()); @Override publi原创 2015-07-21 17:35:26 · 3176 阅读 · 0 评论 -
android开发之PreferenceScreen使用详解
是在惭愧,学习android也有一段时间了,今天才是第一次接触PreferenceScreen。记录下来,与大家分享。本文参考:http://lovezhou.iteye.com/blog/1020361PreferenceScreen使用步骤:1.先在res文件夹中新建一个xml文件夹,用来存放preferences.xml文件 preferences.xml<?xml version="1.0原创 2015-07-24 12:17:25 · 21019 阅读 · 1 评论 -
android开发布局优化之ViewStub
使用ViewStub可以延迟加载一个布局文件,提高显示速率。刚开始接触到,记录下来。关于viewstub的使用,我们可以在不同的布局中使用,比如可以根据设备的大小动态决定显示哪个界面。viewstub和include比较像,都是在一个布局文件中嵌入另外一个布局文件,然而viewstub是可以说是延迟加载,它只会在你手动指定加载的时候才会加载这个布局文件,而include则会立即加载。在布局中使用Vi原创 2015-07-29 20:35:35 · 2235 阅读 · 2 评论 -
android开发之merge结合include优化布局
merge结合include优化android布局,效果不知道,个人感觉使用上也有很大的局限,不过还是了解一下,记录下来。布局文件都要有根节点,但android中的布局嵌套过多会造成性能问题,于是在使用include嵌套的时候我们可以使用merge作为根节点,这样可以减少布局嵌套,提高显示速率。<?xml version="1.0" encoding="utf-8"?><merge xmlns:a原创 2015-07-29 20:54:27 · 4054 阅读 · 2 评论