
Android
文章平均质量分 70
qduningning
这个作者很懒,什么都没留下…
展开
-
我的Android之旅——学习、项目、心态
学习Android也一年多了,项目做了五六个,有大有小,有难有易。一直以来都没有好好总结过,今天周六休息,就写下这一年多从事Android以来的一些感想和小经验。涉及学习、项目和一些个人感受。1.学习篇我是从11年5月份开始接触并学习Android的,在那之前有过一年的J2EE的经验,做过三个J2EE的项目,从08年开始接触Java,所以到去年学习Android时,开发语言上我还是转载 2012-07-31 13:06:39 · 2412 阅读 · 0 评论 -
Android官方技术文档翻译——ApplicationId 与 PackageName
本文译自androd官方技术文档《ApplicationId versus PackageName》,原文地址:http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename。本文地址:http://blog.youkuaiyun.com/maosidiaoxian/article/details/417转载 2015-02-10 14:44:13 · 1206 阅读 · 0 评论 -
Android设置沉浸式状态栏时改变状态栏的颜色(只对MIUI V6可用)
Android支持在API 19及以上使用沉浸式状态,但在MIUI V6下如果扩展的颜色比较浅,会导致状态栏的文字无法看清。在Android4.4设备上支持沉浸式状态栏,只需要添加values-v19/styles.xml 下添加 <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"><item原创 2015-04-27 19:09:58 · 7621 阅读 · 3 评论 -
Android 突破 65K Methods
由于业务需求导入了Google Play Service 的库,编译直接报错。经查发现超出65K个方法,一个Dex已经无法包含。开发用的Android Studio,首先在 build.gradle的defaultConfig中添加multiDexEnabled true,来突破突破65535的限制,编译成功,但运行起来后直接报一些类似微信等的第三方库NoSuchMethodException异常原创 2015-06-09 23:52:33 · 2795 阅读 · 0 评论 -
解决Spinner有时不回调onItemSelected
在使用Spinner的时候有时候需要在用户点击下拉的任一项时都要出发一个事件,但有时候Spinner不会回调onItemSelected方法,尤其是下拉中只有一个元素的时候。永远不会回调onItemSelected方法。找了半天,有说加flag的,有说监控onTouch事件的,都不是很理想,还不如直接分析源码:首先找到setOnItemSelectedListener,在AdapterView.j原创 2015-06-10 00:20:00 · 4368 阅读 · 0 评论 -
Android 在ListView使用addHeader注意的问题
记录使用addHeader时候要注意的问题。原创 2015-12-27 13:35:22 · 10100 阅读 · 0 评论 -
体验Android ORM之DBFlow
DBFlow综合了 Active Android, Schematic, Ollie,Sprinkles 等库的优点;不通过消耗性能的反射而通过注解实现,性能好(Referer);https://github.com/Raizlabs/DBFlow1.为什么使用DBFlow? 如果要执行下面这一条SQL语句:SELECT * FROM Ant where type = 'worker' AND原创 2016-04-12 01:14:19 · 6581 阅读 · 6 评论 -
Android API Level 版本对应表
Android API level对应表 备查用的。原创 2016-03-27 14:49:41 · 997 阅读 · 0 评论 -
使用编译时注解方式实现View注入(Android Studio)
ButterKnife是一个强大的View注入,事件注入的框架,现模仿ButterKnife的方式,使用编译时注解实现View的注入的Demo。基本的原理在上一篇文章中(https://www.zhangningning.com.cn/blog/Android/android_rentention.html)已经做了说明,这篇主要是实现一个在Activity中实现Bind View的注解。先整体说原创 2016-05-24 00:00:22 · 6736 阅读 · 4 评论 -
试水Bilibili/ijkplayer-Android
ijkplayer 是Bilibili基于ffmpeg开发并开源的视频播放器,支持播放本地网络视频,也支持流媒体播放。支持Android&iOS.系统:Mac os 10.11.1 NDK: ndk-r12b Androd Studio 2.1.2原创 2016-08-04 17:30:58 · 16531 阅读 · 5 评论 -
Android,iOS打开手机QQ与指定用户聊天界面
在浏览器中可以通过JS代码打开QQ并弹出聊天界面,一般作为客服QQ使用。而在移动端腾讯貌似没有公布提供类似API,但是却可以使用schema模式来启动手机QQ。原创 2014-10-29 15:43:37 · 33984 阅读 · 21 评论 -
Android API Level对照表
Android API Level 对照表,留存备查原创 2016-07-08 17:18:41 · 1070 阅读 · 0 评论 -
使用图片作为TextView的字体颜色(前景?)
在dribbble上看到一个效果 https://dribbble.com/shots/2918663-INVES-profolio-cover,如下图:就想如果用Android来实现该怎么做呢?首先想到的是,把图片当做ViewGroup或者TextView的背景,在dispatchDraw()或者onDraw()里面使用PorterDuffXfermode进行DST_IN进行扣取,实际上试过之后,原创 2016-08-26 14:19:27 · 1137 阅读 · 0 评论 -
探究 Dagger2
Dagger2是Dagger的分支,早期有square开发,现在由谷歌公司接手维护。主要实现了依赖注入(DI)的思想,对象不在具体使用的地方进行实例化,而是在其他地方进行统一管理。最大限度的进行解耦。Dagger2 使用注解的形式来标示注入和提供实例等操作,但基于运行效率,混淆问题等原因的考虑,Dagger2去除了Dagger1中使用的反射,选择了编译时注解,而非运行时注解。首先来看看Dagger原创 2016-08-26 18:41:17 · 1529 阅读 · 0 评论 -
试水Bilibili/ijkplayer-Android-Demo
对ijkplayer提供的Demo进行精简优化。ijkplayer的编译请查看上一篇LINK官方提供的Demo的代码还是挺多的,甚至还用了otto,需要对官方的demo进行精简,去除一些用不到的代码。首先需要的是ijkplayer-{arch},ijkplayer-java两个库,exo是Google提供的新的播放器(介绍),这里不需要,直接砍掉。其次是ijkplayer-example里的,我们原创 2016-08-26 18:45:15 · 10888 阅读 · 6 评论 -
解决Android Webview 加载一些网页出现白板现象
Webview 加载一些链接出现白板现象,经过调试onLoadResource 已经正常执行,也就是资源文件都已经成功加载,onReceivedSslError也没有回调到,用自带浏览器和UC都是正常,证明链接本身没有问题,Webview也正常运行,没有出现错误,那就是Webview的配置问题了。经过N个测试,把webView.getSettings().setJavaScriptEnab原创 2015-02-02 18:00:02 · 24338 阅读 · 5 评论 -
使用谷歌地图 Javascript版
谷歌称Map JavaScript V3版是同时为PC和移动设备开发的,使用Html5。首先需要在 Google Console 申请KEY,创建 一个 Browser key ,简单demo就可以使用:<!DOCTYPE html><html> <head> <title>Asynchronous Loading</title> <meta name="viewport"原创 2015-04-07 13:27:30 · 4415 阅读 · 0 评论 -
Android 国内集成使用谷歌地图
由于众做周知的原因在国内使用谷歌地图不太方便,在开发中如果直接使用会出现些问题。但国内的如百度地图,高德地图等都无法提供详细的国外地图数据,所以研究一下喽,,,使用 Google Maps Android API v2使用谷歌提供的SDK,Android Studio开发。首先保证SDK Manager中 Google Play service服务已经安装。 2.新建一个工程GoogleMapDe原创 2015-03-31 13:56:40 · 38548 阅读 · 26 评论 -
Android 通过网页打开自己的APP(scheme)
通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据。原创 2014-07-09 17:35:59 · 66284 阅读 · 23 评论 -
Android Webview 加载外部html时选择加载本地的js,css等资源文件
在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片等资源会比较大,如果直接从网络加载会导致页面加载的比较慢,而且会消耗比较多的流量。所以这些文件应该放在assets里面同app打包。要解决这个问题需要用到API 11(HONEYCOMB)提供的shouldInterceptRequest(WebView view, String url) 函数来加载本原创 2015-01-27 17:11:31 · 15120 阅读 · 0 评论 -
[心得]Android进程间通信之Broadcast Receiver
Android框架层提供的一些通信机制Broadcast、Intent、Content Provider,主要用于应用程序开发时提供跨进程或应用程序内部的通信。android中,通过广播(broadcast)可以通知广播接受者某个事件发生了。比如一些系统时间:电源不足,时间改变等,也可以是自定义的事件。有两种方式可以注册:静态注册(冷注册)和动态注册(热注册)。l 冷注册,原创 2012-08-04 22:49:23 · 10374 阅读 · 0 评论 -
Android中用Toast.cancel()方法优化toast内容的显示
产品在测试过程中发现一个bug,就是测试人员不停的疯狂的点击某个按钮,触发了toast以后,toast内容会一直排着队的显示出来,不能很快的消失。这样可能会影响用户的使用。看到Toast有一个cancel()方法:void cancel()做程序员的,基本一看api就知道,用这个可以取消上一个toast的显示,然后显示下一个,这样就能解决出现的问题。可是在测试的过程中,发现却没有想象中转载 2012-10-06 22:21:58 · 5629 阅读 · 0 评论 -
TextView属性大全
android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all) android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。 android:bufferType指定getText()方式取得的文本类别。选项edita转载 2012-10-30 23:07:28 · 1028 阅读 · 0 评论 -
Android开发EditText属性
EditText继承关系:View-->TextView-->EditText EditText的属性很多,这里介绍几个: android:hint="请输入数字!"//设置显示在空间上的提示信息 android:numeric="integer"//设置只能输入整数,如果是小数则是:decimal android:singleLine="true"//设置单行输入,一旦设置为转载 2012-10-30 23:09:35 · 1349 阅读 · 0 评论 -
SoundPool的使用
SoundPool —— 适合短促且对反应速度比较高的情况(游戏音效或按键声等)下面介绍SoundPool的创建过程:1. 创建一个SoundPool (构造函数)public SoundPool(int maxStream, int streamType, int srcQuality) maxStream —— 同时播放的流的最大数量streamType ——转载 2013-03-16 11:00:53 · 18127 阅读 · 4 评论 -
android之Fragment(官网资料翻译)
Fragment要点Fragment作为Activity界面的一部分组成出现可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace())Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的翻译 2013-06-19 10:17:08 · 837 阅读 · 0 评论 -
onInterceptTouchEvent和onTouchEvent调用时序
onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截,Android这么设计的想法也很好理解,由于ViewGroup会包含若干childView,因此需要能够统一监控各种touch事件的机会,因此纯粹的不能包含子view的控件是没有这个方法的,如Linea转载 2013-12-11 12:43:42 · 614 阅读 · 0 评论 -
Android Service解析解析再解析
学习android有一段时间了,在没有好的师傅带领下,入门时总是碰到这样那样的新概念、新知识,而这些知识虽说能看得明白,却没有深得它的精髓。就好比有一双好看的鞋子,我只知道它很好看,穿起来挺舒服的,但是却不了解为什么穿起来舒服,它是由什么材料组合成的,怎么穿才能更舒服有效。不过开始学习android虽然开头困难重重,但是我坚信大家只要有耐心,有决心不间断地学习下去,总能有大丰收的时候。打个比方,你转载 2014-01-10 14:14:20 · 759 阅读 · 0 评论 -
android中跨进程通讯的4种方式
由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。其中Activity可以跨进程调用其他应用程序的Activity;Content P转载 2014-03-11 20:32:45 · 3685 阅读 · 0 评论 -
Android Asynchronous Http Client--Android 开源的网络异步加载类
整理Android Asynchronous Http Client的使用Android Asynchronous Http Client(AHC)一个回调式的Android网络请求库概括:AHC是基于Apache的HttpClient 库,所有的网络请求过程在UI线程之外进行,而回调是在Handler里面处理。也可以再Service或者后台程序里面使用,这个库会自原创 2014-06-26 14:29:54 · 7367 阅读 · 2 评论 -
Android仿iOS7的UISegmentedControl 分段
Android仿iOS7的UISegmentedControl 分段, 这里只简单做了两个按钮的,效果图..原创 2014-07-18 18:16:05 · 10390 阅读 · 10 评论 -
解决Android 中Edittext在执行setError时有时不显示文字
在使用EditText时可以使用setError来显示一个tip来提示原创 2014-06-19 19:38:24 · 5924 阅读 · 0 评论 -
Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题
在使用ListView时,在Adapter里面使用convertView会提高ListView的性能,提升100%?但今天发现在listView同时加载不同的View的同时会导致ListView最底下有一块空白,可能是恰巧吧,导致这样的原因可能是加载了几个不同的View,而他们的高度不同,数量也不同,系统无法准确计算ListView的总高度。在 BaseAdapter里面提供了两个回调函数来指原创 2014-07-29 15:21:41 · 3083 阅读 · 2 评论 -
drawable文件夹详解
QVGA使用ldpi,虽然有不同尺寸,但都是120dpi左右;HVGA同理;如下图;-finger 用于触摸屏的设备-hdpi 近似于240dpi的高级显示密度的屏幕-mdpi 近似于160dpi的中级显示密度的屏幕-ldpi 近似于120dpi的低级显示密度的屏幕-land 横屏显示转载 2014-08-20 10:23:09 · 926 阅读 · 0 评论 -
Android ProgressBar的动画效果
ProgressBar<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/progress_my_style" style="?android:attr/progress原创 2014-10-23 18:12:17 · 5180 阅读 · 0 评论 -
Android 读取Manifest文件下Application 等节点下的meta-data自定义数据
Android在提供了meta-date使用键值对的形式实现自定义配置。一般使用中作为渠道标识。可以用在<application>,<activity>,<activity-alias> ,<provider> ,<receiver>节点下。所有的值存储在同一个Bundle里面,可以使用 PackageItemInfo.metaData渠道这些数据。原创 2014-11-14 11:48:25 · 13173 阅读 · 0 评论 -
Android混淆打包出错,出现类似 there were 133 duplicate class definitions.
Android混淆后打包时出现打包失败,原创 2014-11-24 10:44:53 · 11404 阅读 · 5 评论 -
关于近期遇到的坑-SurfaceView,RecylerView等
近期参与了一个多人视频通话的业务,在其中使用SurfaceView负责显示用户的视频流,没想到被坑死。。关于显示和隐藏背景: 由于是用六宫格的形式同时展示多人的视频,就选用了RecyclerView来实现,视频用SurfaceView展示,如果用户关掉了摄像头,使用语音模式就不显示SurfaceView,只显示用户头像就可以了。 因为之前仅仅用过SurfaceView当做显示摄像头数据,没有深入原创 2016-11-10 14:25:46 · 7884 阅读 · 3 评论