随笔分类 - android提高篇
摘要:1.适用场景1) ContentProvider为存储和读取数据提供了统一的接口2) 使用ContentProvider,应用程序可以实现数据共享3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等)2.相关概念介绍1)ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpref...
阅读全文
摘要:越来越多的手机具备自动对焦的拍摄功能,这也意味着这些手机可以具备条码扫描的功能.......手机具备条码扫描的功能,可以优化购物流程,快速存储电子名片(二维码)等。 本文使用ZXing 1.6实现条码/二维码识别。ZXing是个很经典的条码/二维码识别的开源类库,long long ago,就有开发者在J2ME上使用ZXing了,不过要支持JSR-234规范(自动对焦)的手机才能发挥其威力,而目前已经有不少Android手机具备自动对焦的功能。本文代码运行的结果如下,使用91手机助手截图时,无法截取SurfaceView的实时图像:本文使用了ZXing1.6的core,即把/zxing-1.6
阅读全文
摘要:Tasks and Back Stack 一个应用通常包括多个 activity。每个 activity应用设计为围绕针对执行用户特定的行为和可以启动其它 activity。一个 Activity也可以启动别个应用的 Activity。当别的应用完成,你的应用会重新激活 ,来自别个应用的 activity看起来像是自己的应用中的一样。尽管这些 Activity处于不同的应用, Android将这些 activity维护到同一个 task中给用户这种无缝的应用体验。一个 task是用户执行一个特定的工作与用户交互的一组特定的 Activity的集合。 Activity被安排到同一个栈 (back
阅读全文
摘要:在桌面上创建特定界面的快捷入口,icon和title根据请求参数命名。在网上收集的一些相关资 料,在使用intent发送广播的时候,一些型号的收集会有问题,如魅族MX,红米,以及华为,使用setClass和setComponent创建快捷 方式的时候不能正确生成快捷方式,有的快捷方式的会使用相应包下的APP名称命名,有的手机如魅族会应为包名冲突而无法创建快捷方式。解决的办法就是使用 setAction来创建Intent,然后可以在data/data/com.andoird.launcher/databases /launcher.db中查看桌面快捷方式的数据是否正确。以下是相关代码:Inten
阅读全文
摘要:Android系统自带了长按事件,setOnLongClickListener即可监听。但是有时候,你不希望用系统的长按事件,比如当希望长按的时间更长一点的时候。这时候就需要自己来定义这个长按事件了。 自定义长按事件的方式:Java代码 packagechroya.fun;importandroid.content.Context;importandroid.view.MotionEvent;importandroid.view.View;importandroid.view.ViewConfiguration;publicclassLongPressView1extendsView{pri.
阅读全文
摘要:开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己 定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个 item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子 控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本 身的点击没有响应。 这时候就可以使用descendantFocusability来
阅读全文
摘要:相信大家一定在见过手机通讯录的一个情景就是使用在选人的时候输入文本框里的数据就能自动筛选。实现的效果如下图。其实实现这样的效果相信大家一定对另外一个控件不陌生那就AutoCompleteTextview,看一下这个控件的源代码也许就能找到你需要的答案。这里的核心就是一个Filterable。至于Filterable的介绍和做什么用的大家就可以自行上网查找相关知识,其中有两个重要的方法方法名作用protected FilterResults performFiltering(CharSequence prefix)在这个方法里执行过滤方法protected void publishResults
阅读全文
摘要:AutoCompleteTextView具有输入提示的功能,但是它的这种提示不适合对股票列表的过滤,如果你玩过股票软件,就会知道只要输入股票名称的首字母或股票代码就会出现符合匹配的股票,这种过滤怎么实现呢?还有个问题,汉字具有多音字,如何实现多音字的匹配,比如“长江证券”,无论你输入“cjzq”或者“zjzq”都会匹配到它,这都是需要解决的问题!匹配的关键在于重写BaseAdapter,让它实现Filterable接口,重写其中的getFilter(),如果你参照ArrayAdaper源码的话,写起来就会容易很多,事实上我就是这么做的,^o^下面看一下源码:Java代码 packagecom.
阅读全文
摘要:其他构造器的旋转也可参考这副图。 RotateAnimation旋转坐标系为以旋转点为坐标系(0,0)点。x轴为0度,顺时针方向旋转一定的角度。 1.RotateAnimation(fromDegrees, toDegrees) [默认以View左上角顶点为旋转点]。 X轴顺时针转动到fromDegrees为旋转的起始点, X轴顺时针转动到toDegrees为旋转的起始点。 如fromDegrees=0,toDegrees=90;为左上角顶点为旋转点。0度为起始点,90度为终点。进行旋转,旋转了90度 如fromDegrees=60,toDegrees=90;为左上角顶点为旋转点。60度为起始
阅读全文
摘要:功能要求:(1)比如每页显示2X2,总共2XN,每个item显示图片+文字(点击有链接)。如果单行水平滚动,可以用Horizontalscrollview实现。如果是多行水平滚动,则结合Gridview(一般是垂直滚动的)和Horizontalscrollview实现。(2)水平滚动翻页,下面有显示当前页的icon。1.实现自定义的HorizontalScrollView(HorizontalScrollView.java):因为要翻页时需要传当前页给调用者,所以fling函数中自己实现而不要调用父类的fling。[java] view plaincopypublicclassDrawerHS
阅读全文
摘要:要实现多页滑动效果,主要是需要处理onTouchEvent和onInterceptTouchEvent,要处理好touch事件的子控件和父控件的传递问题。滚动控制可以利用android的Scroller来实现。这里提供两种做法:1、自定义MFlipper控件,从ViewGroup继承,利用Scroller实现滚动,重点是onTouchEvent和onInterceptTouchEvent的重写,要注意什么时候该返回true,什么时候false。否则会导致界面滑动和界面内按钮点击事件相冲突。由于采用了ViewGroup来管理子view,只适合于页面数较少而且较固定的情况,因为viewgroup需
阅读全文
摘要:示意图就不展示了,和上一节的一样,滑动菜单SlidingMenu效果如何大家都比较熟悉,在这里我简单说明一下用自定义ViewGroup来实现. 实现方法:我们自定义一个ViewGroup实现左右滑动,第一屏隐藏,第二屏显示. 代码如下:[java] view plaincopypackagecom.jj.sliding_6;importandroid.content.Context;importandroid.util.AttributeSet;importandroid.util.Log;importandroid.view.View;importandroid.view.ViewGro..
阅读全文
摘要:TextView实现文字滚动需要以下几个要点:1.文字长度长于可显示范围:android:singleLine="true"2.设置可滚到,或显示样式:android:ellipsize="marquee"3.TextView只有在获取焦点后才会滚动显示隐藏文字,因此需要在包中新建一个类,继承TextView。重写isFocused方法, 这个方法默认行为是,如果TextView获得焦点,方法返回true,失去焦点则返回false。跑马灯效果估计也是用这个方法判断是否获得焦点,所以 把它的返回值始终设置为true。以下转自他人:Java语言:Always
阅读全文
摘要:先看看效果图吧,个人觉得图标丑了点,不过还行,自己用PS做的下面是全部代码和流程,一定要按流程顺序来,不然错误!1.tabhost.xml[html] view plaincopy2.tab_item_view.xml[html] view plaincopy3.样式选择器selector:tab_item_style.xml,新建文件夹drawable,然后将该xml文件放进去[html] view plaincopy4.java代码实现:MyTabHost.java[java] view plaincopypackagecom.example.androidtabhost4;importa
阅读全文
摘要:public class ActsGroup extends ActivityGroup {private LinearLayout bodyView;private LinearLayout home, gamebox, team, more;private int flag = 0; // 通过标记跳转不同的页面,显示不同的菜单项// private String parameter = Constant.BUTTON_HOME;// 初始化加载/** Called when the activity is first created. */@Overridepublic void onC
阅读全文
摘要:Dialog有两种形式的,一个是Dialog及其子类,还有一种是Activity的Dialog显示方式。不管怎样,在自定义Dialog的时候,如果不做一些处理,都会出现黑色背景边框,这个问题动不动就出来困扰我一下,于是打算总结下。一、Dialog及其子类自定义的话,有几种不同形式: 1>.AlertDialog.Builder的setView方法。1234567if (mDialog == null) { mDialog = new AlertDialog.Builder(mContext) .setIcon(R.drawable.ic_launcher) .setTitl...
阅读全文
摘要:packageelwin.fei.mobileaudio;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.text.SimpleDateFormat;publicclassCreateFiles{StringfilenameTemp=Info.audioPath+"/hhaudio"+".txt";//创建文件夹及文件publicvoidCreateText()throwsIOExce
阅读全文
摘要:例子说明:用户通过访问web资源的最新电影资讯,服务器端生成XML或JSON格式数据,返回Android客户端进行显示。 此案例开发需要两个方面 WEB开发和Android开发. 一.web开发相对比较简单,只是模拟一下 相关代码如下: 1.实体Beanpackage ygc.yxb.domain;[/font]/*** 电影资讯实体Bean* @author YXB**/public class News { private Integer id; //id private String title; //电影名称 private Integer timelenght; //时...
阅读全文
摘要:一般项目中我们把db文件放到assert或者raw目录下面,在程序第一次启动的时候复制到私有目录下面在使用过程中,老是发现复制不成功,私有目录下的db文件总是3072后来发现应该是使用ContentProvider的原因,它会先创建一个空的db。 而我的程序在复制数据库的时候会判断私有目录下是否有数据库文件,如果有则不复制。现在改为用SharedPreferences一个字段判断是否第一次复制。第一次复制数据库的时候就算私有目录下有db文件,也删除。这样就ok了代码如下:Java代码 publicclassCopyDataActivityextendsActivity{booleanneedC
阅读全文
摘要:Java代码packagecom.shawn.test;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.util.Log;publicclassDatabaseAdapter{privatestaticfinalStringDB_NAME=&q
阅读全文

浙公网安备 33010602011771号