摘要:今天介绍一下怎么监听ContentProvider的数据改变,主要的方法是:getContext().getContentResolver().notifyChange(uri,null),这行代码是通知所有注册在该Uri上的监听者,该ContentProvider所共享的数据发生了改变。 监听ContentProvider数据改变的监听器需要继承ContentObserver类,并重写该基类所定义的onChange(boolean selfChange)方法----当它所监听的ContentProvider的数据发生改变时,该onChange将会被触发。 为了监听指定ContentProv.
阅读全文
摘要:在Android应用中,有时候需要朗读一些文本内容,今天介绍一下Android系统自带的朗读TextToSpeech(TTS)。自动朗读支持可以对指定文本内容进行朗读,还可以把文本对应的音频录制成音频文件。Android的自动朗读支持主要通过TextToSpeech来完成,该类提供了如下构造器:1 TextToSpeech(Context context, TextToSpeech.OnInitListener listener) 当创建TextToSpeech对象时,必须先提供一个OnInitListener监听器---该监听器负责监听TextToSpeech的初始化结果。 一旦获得了Te.
阅读全文
摘要:当Android中的应用需要访问其他应用的数据时,用ContentProvider可以很好的解决这个问题。今天介绍一下ContentProvider的用法。 首先开发ContentProvider有两个步骤: 1、开发一个ContentProvider的子类,该子类需要实现增、删、改、查等方法。 2、在AndroidManifest.xml文件中注册该ContentProvider。 下面通过一个实例来介绍一下ContentProvider到底怎么实现的。首先,我们也像系统一样把ContentProvider的Uri、数据列等信息以常量的形式公开出来、方便访问。为此,定义一个工具类,该类中只.
阅读全文
摘要:在Android应用中,经常会碰到后台的时间是时间戳而现实的需要今天什么时候,昨天什么时候,就像微博的时间显示一样。现在我上一个把时间戳转换的代码: 1 public static String getTime(int timestamp) { 2 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3 String time = null; 4 try { 5 java.util.Date currentdate = new java....
阅读全文
摘要:在Android应用当中,经常需要传送一些设备信息给后台,一般这些信息都要经过MD5编码,下面介绍一下MD5编码功能,直接上代码: 1 public static String md5(String s) { 2 try { 3 // Create MD5 Hash 4 MessageDigest digest = java.security.MessageDigest 5 .getInstance("MD5"); 6 digest.update(s.getByte...
阅读全文
摘要:在android应用开发中,有时候应用会用到按两下返回键退出应用的功能,今天介绍一下这个功能,直接上代码: 1 @Override 2 public boolean dispatchKeyEvent(KeyEvent event) { 3 if (event.getAction() == KeyEvent.ACTION_DOWN 4 && event.getKeyCode() == KeyEvent.KEYCODE_BACK) { 5 if ((System.currentTimeMillis() - mExit...
阅读全文
摘要:在开发Android应用的过程中,ViewPager有时候需要自动播放的功能,今天就介绍一下自动播放功能的实现,直接上代码: 1 // viewpager auto play 2 private static final long ANIM_VIEWPAGER_DELAY = 3000; 3 4 private Handler h = new Handler(); 5 private Runnable animateViewPager = new Runnable() { 6 public void run() { 7 if ...
阅读全文
摘要:在Android应用中,有时候需要TextView可以垂直滚动,今天我就介绍一下怎么实现的。在布局里:1 6 android:singleLine="false" 7 android:maxLines="5" 8 android:textColor="#FF0000"9 />然后在代码里:1 yourTextView.setMovementMethod(ScrollingMovementMethod.getInstance());
阅读全文
摘要:TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true" 2.设置可滚到,或显示样式:android:ellipsize="marquee" 3.自定义滚动的ScrollingTextView 1 public class ScrollingTextView extends TextView { 2 3 public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) { 4 super(contex
阅读全文
摘要:在做Android注册登录模块的时候,经常需要在客户端就验证用户输入的信息的正确性,如填写邮箱需要验证是否是邮箱,填写手机、年龄等信息需要验证是否是数字。先介绍一下验证邮箱的代码: 1 /** 2 * method is used for checking valid email id format. 3 * 4 * @param email 5 * @return boolean true for valid false for invalid 6 */ 7 public static boolean isEmailValid(S...
阅读全文
摘要:在Android应用中有时候要用到类似网易新闻左右滑动页面且页面里又有左右滑动的图片功能,我不知道网易是怎么实现的,本人的做法是外面的BaseFragmentActivity布局就是TabViewPager,布局代码: 1 8 9 然后调用viewpager的子view是一个Fragment,碎片里的布局有ViewPager来显示多张图片, 直接调用viewpager时,父ViewPager和子ViewPager的事件有冲突。解决方法是冲定义外面的ViewPager,具体代码: 1 public class CustomViewPager extends ViewPag...
阅读全文
摘要:Android系统自带的ProgressBar风格不是很好,如果想自己设置风格的话,一般有几种方法。首先介绍一下第一种方法通过动画实现。在res的anim下创建动画资源loading.xml: 1 2 4 5 8 11 14 17 20 23 26 29 32 35 38 41 42 然后在布局文件中调用即可:1 备注:ProgressBar的大小需要按照图片的大小来调整,不然的话效果不是很好。 第二种方法是使用一张图片进行定义。在res的drawable里创建loading.xml文...
阅读全文
摘要:前段时间做项目碰到在ScrollView里添加ViewPager,但是发现ViewPager的左右滑动和ScrollView的滑动冲突了,解决这个问题的方法是重写ScrollView。代码: 1 public class CustomScrollView extends ScrollView { 2 3 private GestureDetector mGestureDetector; 4 View.OnTouchListener mGestureListener; 5 6 public CustomScrollView(Context context, Attr...
阅读全文
摘要:今天介绍一下Android中怎么实现ImageView的缩放和移动,自定义TouchImageView。 1 public class TouchImageView extends ImageView { 2 3 Matrix matrix; 4 5 // We can be in one of these 3 states 6 static final int NONE = 0; 7 static final int DRAG = 1; 8 static final int ZOOM = 2; 9 int mode = ...
阅读全文
摘要:今天介绍一下Android 读写SD卡的文件,要读写SD卡上的文件,首先需要判断是否存在SD卡,方法:Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); 然后才能读写SD卡上的文件,调用Environment的getExternalStorageDirectory()方法获取外部存储器(SD卡)的目录。 使用FileInputStream、FileOutputStream、FileReader或FileWriter读、写SD卡里的文件。 需要注意是要添加相应的权限。 读、写文件的关键代码:priva.
阅读全文
摘要:今天介绍一下Android中最常用的组件activity的生命周期。当activity处于Android应用中运行时,它的活动状态由Android以Activity栈的形式管理。当前活动的Activity处于栈顶。随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。 归纳起来Activity大致会经过如下四个状态。 活动状态:当前Activity位于栈顶,用户可见,可以获得焦点。 暂停状态:其他Activity处于栈顶,该Activity依然可见,只是不能获得焦点。 停止状态:该Activity不可见,失去焦点。 销毁状态:该Activi.
阅读全文
摘要:今天介绍一下怎么动态的获取listview的高度。看代码:public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0; i...
阅读全文