![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
提高
文章平均质量分 93
iteye_17420
这个作者很懒,什么都没留下…
展开
-
Android提高第一篇之MediaPlayer[转]
前面写了十四篇关于界面的入门文章,大家都看完和跟着练习之后,对于常用的Layout和View都会有一定的了解了,接下来的文章就不再强调介绍界面了,而是针对具体的常见功能而展开。 本文介绍MediaPlayer的使用。MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但...原创 2011-11-03 12:02:01 · 94 阅读 · 0 评论 -
Android提高十八篇之自定义Menu(TabMenu)[转]
用过UCWEB-Android版的人都应该对其特殊的menu有印象,把menu做成Tab-Menu(支持分页的Menu),可以容纳比Android传统的menu更丰富的内容(Android的menu超过6项则缩略在[更多]里),本文参考网上的例子(作者:CoffeeCole,email:longkefan@foxmail.com),对例子进行简化以及封装,使其作为一个复合控件...原创 2011-11-09 13:35:32 · 78 阅读 · 0 评论 -
Android提高第十九篇之"多方向"抽屉[转]
在android上要实现类似Launch的抽屉效果,大家一定首先会想起SlidingDrawer。SlidingDrawer是android官方控件之一,本文的主角不是它,而是民间的控件工具集合~~~android-misc-widgets。android-misc-widgets里面包含几个widget:Panel、SmoothButton、Switcher、VirtualK...原创 2011-11-09 13:35:48 · 122 阅读 · 0 评论 -
Android提高第二十篇之MediaPlayer播放网络音频[转]
以前曾经地介绍过MediaPlayer的基本用法,这里就深入地讲解MediaPlayer的在线播放功能。本文主要实现MediaPlayer在线播放音频的功能,由于在线视频播放比在线音频播放复杂,因此先介绍在线音频播放的实现,这样可以帮助大家逐步深入了解MediaPlayer的在线播放功能。先来看看本文程序运行的结果:main.xml的源码如下: <?xml v...原创 2011-11-10 08:58:48 · 89 阅读 · 0 评论 -
Android提高第二十一篇之MediaPlayer播放网络视频
上次讲解了MediaPlayer播放网络音频,介绍了MediaPlayer关于网络音频的缓冲和进度条控制的方法,这次再讲解MediaPlayer播放网络视频。播放网络视频比播放网络音频多需要一个SurfaceView而已,已经熟悉MediaPlayer播放网络音频之后,相信大家对播放网络视频也能很快地掌握。先来看看本文程序运行截图:本文程序的视频来自http://dai...原创 2011-11-10 08:59:22 · 72 阅读 · 0 评论 -
可动态布局的Android抽屉之基础[转]
以前曾经介绍过《Android提高第十九篇之"多方向"抽屉》,当这个抽屉组件不与周围组件发生压挤的情况下(周围组件布局不变),是比较好使的,但是如果需要对周围组件挤压,则用起来欠缺美观了。 如下图。在对周围压挤的情况下,抽屉是先把周围的组件一次性压挤,再通过动画效果展开/收缩的,这种做法的好处是快速简单,坏处是如果挤压范围过大,则效果生硬。 ...原创 2011-11-10 08:59:41 · 84 阅读 · 0 评论 -
可动态布局的Android抽屉之完整篇[转]
上次介绍了基础篇,讲解了自定义抽屉控件的基础实现,这次就在基础篇的基础上加入拖拉功能。拖拉功能基于GestureDetector,GestureDetector的基本使用方式不是本文介绍的重点,有兴趣的童鞋可以上网查询相关的教程。 本文的抽屉控件相对于基础篇的抽屉控件多了以下功能:1.支持手势拖拉2.拖拉到一半时,可以自动展开或者收缩。具体如下图:...原创 2011-11-10 09:00:14 · 98 阅读 · 0 评论 -
精确监听AbsListView滚动至底部[转]
用户使用android客户端时,当ListView滚动至底部,可以由一个按钮来提示用户是否读下一页,那么如果使用GridView呢?现在很多WEB 2.0上的体验就是当底部时自动读取下一页数据,GridView(ListView也可)可以采用这种方法。网上已经有很多文章介绍了如何判断ListView是否滚动至底部,原理是 AbsListView.getLastVisibleP...原创 2011-11-10 09:00:28 · 76 阅读 · 0 评论 -
Android实现ListView异步加载图片[转]
ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,不用让用户等待下去,下面就说实现方法,先贴上主方法的代码: package cn.wangmeng.test;import java.io.IOException;import java.io.InputStream;import java.lang.ref.Sof...原创 2011-11-30 11:17:39 · 81 阅读 · 0 评论 -
BitmapFactory.Options详解[转]
public BitmapinBitmapIf set, decode methods that take the Options object will attempt to reuse this bitmap when loading content.public intinDensityThe pixel d...原创 2012-11-21 20:50:23 · 115 阅读 · 0 评论 -
Android ListView下拉刷新点击加载更多[转]
这个ListView的下拉刷新算是不错了。网上找了很多个版本,加上不断的测试和修改,这个操作很流畅,使用也非常方便:看代码: listView.setonRefreshListener(new CustomListView.OnRefreshListener() {@Overridepublic void onRefresh() {//TODO 下拉刷新...原创 2012-12-03 09:04:56 · 79 阅读 · 0 评论 -
android布局之selector(背景选择器)[转]
关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。首先android的selector是在drawable/xxx.xml中配置的。先看一下listview中的状态:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据L...原创 2012-12-11 23:07:59 · 148 阅读 · 0 评论 -
draw9patch不失真背景
1.背景自适应且不失真问题的存在 制作自适应背景图片是UI开发的一个广泛问题,也是界面设计师渴望解决的问题,我相信我们彼此都深有体会。 比如,列表的背景图一定,但是列表的高度随着列表数据项会发生变化;标题栏的背景,无论横屏还是竖屏,高分辨率还是低分辨率,都能自动填充满,而且不失真等等背景问题。 根据以往的经验,我们一般采用先切图后拼凑的做法,这种做法本来我想在这...原创 2012-12-12 00:23:34 · 77 阅读 · 0 评论 -
android优化——adapter
什么是Adapter,可以先看看我的上一篇文章,Android开发——说说Adapter那点事 Adapter与View的连接主要依靠getView这个方法返回我们需要的自定义view。ListView是Android app中一个最最最常用的控件了,所以如何让ListView流畅运行,获取良好的用户体验是非常重要的。对ListView优化就是对Adapter中的getView方法进行优化。...原创 2012-12-12 18:56:37 · 123 阅读 · 0 评论 -
Android提高十七篇之多级树形菜单的实现[转]
在Android里要实现树形菜单,都是用ExpandableList(也有高手自己继承ListView或者LinearLayout来做),但是ExpandableList一般只能实现2级树形菜单......本文也依然使用ExpandableList,但是要实现的是3级树形菜单。本文程序运行效果图:当用BaseExpandableListAdapter来实现二级树形菜单...原创 2011-11-09 13:35:13 · 101 阅读 · 0 评论 -
Android提高十六篇之使用NDK把彩图转换灰度图[转]
在Android上使用JAVA实现彩图转换为灰度图,跟J2ME上的实现类似,不过遇到频繁地转换或者是大图转换时,就必须使用NDK来提高速度了。本文主要通过JAVA和NDK这两种方式来分别实现彩图转换为灰度图,并给出速度的对比。先来简单地介绍一下Android的NDK使用步骤:以NDK r4为例,或许以后新版的NDK的使用方法略有不同。1、下载支持C++的android...原创 2011-11-09 13:34:57 · 93 阅读 · 0 评论 -
Android提高第十五篇之ListView自适应实现表格[转]
上次介绍了使用GridView实现表格,这次就说说如何用ListView实现自适应的表格。GridView比ListView更容易实现自适应的表格,但是GridView每个格单元的大小固定,而ListView实现的表格可以自定义每个格单元的大小,但因此实现自适应表格也会复杂些(格单元大小不一)。另外,GridView实现的表格可以定位在具体某个格单元,而ListView实现的...原创 2011-11-09 13:34:40 · 97 阅读 · 0 评论 -
Android提高第二篇之SurfaceView的基本使用[转]
上次介绍MediaPlayer的时候稍微介绍了SurfaceView,SurfaceView由于可以直接从内存或者DMA等硬件接口取得图像数据,因此是个非常重要的绘图容器,这次我就用两篇文章来介绍SurfaceView的用法。网上介绍SurfaceView的用法有很多,写法也层出不同,例如继承SurfaceView类,或者继承SurfaceHolder.Callback类...原创 2011-11-03 12:02:33 · 86 阅读 · 0 评论 -
Android提高第三篇之SurfaceView与多线程的混搭[转]
上一篇简单介绍了SurfaceView的基本使用,这次就介绍SurfaceView与多线程的混搭。SurfaceView与多线程混搭,是为了防止动画闪烁而实现的一种多线程应用。android的多线程用法与JAVA的多线程用法完全一样,本文不做多线程方面的介绍了。直接讲解SurfaceView与多线程的混合使用,即开一条线程专门读取图片,另外一条线程专门绘图。 ...原创 2011-11-03 12:03:05 · 92 阅读 · 0 评论 -
Android提高第四篇之Activity+Intent[转]
Android有三个基础组件Activity,Service和BroadcastReceiver,他们都是依赖Intent来启动。本文介绍的是Activity的生命周期以及针对Activity的Intent使用。 之前的例子一直都是使用Activity,在一个Layout XML与一个Activity捆绑的情况下可以视为一个Form,多个Layout XM...原创 2011-11-03 12:04:34 · 76 阅读 · 0 评论 -
Android提高第五篇之Service[转]
上次介绍了Activity以及Intent的使用,这次就介绍Service,如果把Activity比喻为前台程序,那么Service就是后台程序,Service的整个生命周期都只会在后台执行。Service跟Activity一样也由Intent调用。在工程里想要添加一个Service,先新建继承Service的类,然后到AndroidManifest.xml -> App...原创 2011-11-04 09:38:31 · 85 阅读 · 0 评论 -
Android提高第六篇之BroadcastReceiver[转]
前面分别讨论了Activity和Service,这次就轮到BroastcastReceiver,Broastcast是应用程序间通信的手段。BroastcastReceiver也是跟Intent紧密相连的,动态/静态注册了BroastcastReceiver之后,使用sendBroadcast把Intent发送之后,系统会自动把符合条件的BroastcastReceiver启...原创 2011-11-04 09:38:44 · 65 阅读 · 0 评论 -
Android提高第七篇之XML解析与生成[转]
本文使用SAX来解析XML,在Android里面可以使用SAX和DOM,DOM需要把整个XML文件读入内存再解析,比较消耗内存,而SAX基于事件驱动的处理方式,可以在各节点触发回调函数,不过SAX适合节点结构简单的XML文档,复杂的XML文档在后期的节点深度处理会有点麻烦。本文要解析的test.xml文件如下: <?xml version="1.0" encod...原创 2011-11-04 09:39:03 · 72 阅读 · 0 评论 -
Android提高第八篇之SQLite分页读取[转]
Android包含了常用于嵌入式系统的SQLite,免去了开发者自己移植安装的功夫。SQLite 支持多数 SQL92 标准,很多常用的SQL命令都能在SQLite上面使用,除此之外Android还提供了一系列自定义的方法去简化对SQLite数据库的操作。不过有跨平台需求的程序就建议使用标准的SQL语句,毕竟这样容易在多个平台之间移植。先贴出本文程序运行的结果:...原创 2011-11-04 09:39:22 · 99 阅读 · 0 评论 -
Android提高第九篇之SQLite分页表格[转]
上次讲的Android上的SQLite分页读取,只用文本框显示数据而已,这次就讲得更加深入些,实现并封装一个SQL分页表格控件,不仅支持分页还是以表格的形式展示数据。先来看看本文程序运行的动画: 这个SQL分页表格控件主要分为“表格区”和“分页栏”这两部分,这两部分都是基于GridView实现的。网上介绍Android上实现表格的DEMO一般都用ListV...原创 2011-11-04 09:39:38 · 100 阅读 · 0 评论 -
Android提高第十篇之AudioRecord实现"助听器"[转]
Android可以通过MediaRecorder和AudioRecord这两个工具来实现录音,MediaRecorder直接把麦克风的数据存到文件,并且能够直接进行编码(如AMR,MP3等),而AudioRecord则是读取麦克风的音频流。本文使用AudioRecord读取音频流,使用AudioTrack播放音频流,通过“边读边播放”以及增大音量的方式来实现一个简单的助听器程...原创 2011-11-07 09:05:56 · 88 阅读 · 0 评论 -
Android提高第十一篇之模拟信号示波器[转]
上次简单地介绍了AudioRecord和AudioTrack的使用,这次就结合SurfaceView实现一个Android版的手机模拟信号示波器(PS:以前也讲过J2ME版的手机示波器)。最近物联网炒得很火,作为手机软件开发者,如何在不修改手机硬件电路的前提下实现与第三方传感器结合呢?麦克风就是一个很好的ADC接口,通过麦克风与第三方传感器结合,再在软件里对模拟信号做相应的处...原创 2011-11-07 09:06:19 · 99 阅读 · 0 评论 -
Android提高第十二篇之蓝牙传感应用[转]
上次介绍了Android利用麦克风采集并显示模拟信号,这种采集手段适用于无IO控制、单纯读取信号的情况。如果传感器本身需要包含控制电路(例如采集血氧信号需要红外和红外线交替发射),那么传感器本身就需要带一片主控IC,片内采集并输出数字信号了。Android手机如何在不改硬件电路的前提下与这类数字传感器交互呢?可选的通信方式就有USB和蓝牙,两种方式各有好处:USB方式可以给传感...原创 2011-11-07 09:06:43 · 99 阅读 · 0 评论 -
Android提高第十三篇之探秘蓝牙隐藏API[转]
上次讲解Android的蓝牙基本用法,这次讲得深入些,探讨下蓝牙方面的隐藏API。用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出,那么如何去使用这两项功能呢?本文利用JAVA的反射机制去调用这两项功能对应的函数:createBond和removeBond,具体的发掘和实现步骤如下:1.使用G...原创 2011-11-07 09:07:06 · 121 阅读 · 0 评论 -
Android提高第十四篇之探秘TelephonyManager[转]
上次介绍了如何使用JAVA的反射机制来调用蓝牙的隐藏API,这次继续练习JAVA的反射机制,探秘TelephonyManager在Framework里包含却在SDK隐藏的几项功能。先来看看本文程序运行的效果图:本文程序演示了以下功能:1.所有来电自动接听;2.所有来电自动挂断;3.开启/关闭Radio;4.开启/关闭数据连接(WAP or NET的连接...原创 2011-11-07 09:07:36 · 100 阅读 · 0 评论 -
android Theme使用总结
今天对api中style下的theme整个摸了一遍。我将api中theme分为两种类型来实验;一种是api Level为11的,一种是11以下的。level为11的用的是3.0的模拟器,11以下用的是N1,2.3.3的系统。这里我是统一将theme写在AndroidManifest.xml中定义,如下图: 先总结level为11以下的theme:1、Theme:...原创 2012-12-12 19:22:25 · 110 阅读 · 0 评论