Android
文章平均质量分 59
zhangphil
zhangphil@live.com
展开
-
Android计时器TimerTask,Timer,Handler
Android计时器TimerTask,Timer,若要在TimerTask中更新主线程UI,鉴于Android编程模型不允许在非主线程中更新主线程UI,因此需要结合Android的Handler实现在Java的TimerTask中更新主线程UI。现给出一个简单示例。代码使用标准Java的TimerTask和Timer启动一个计时器Task。该任务每隔2秒更新主线程的UI(在主线程的TextV原创 2015-02-22 18:52:18 · 16170 阅读 · 0 评论 -
Android自定义通知布局Notification,点击Notification导航切换回原Activity
一个简单的应用场景:假如用户打开Activity以后,按Home键,此时Activity 进入-> onPause() -> onStop() 不可见。代码在此时机发送一个Notification到通知栏。当用户点击通知栏的Notification后,又重新onRestart() -> onStart() -> onResume() 切换回原Activity。package zhangphil原创 2015-02-24 15:11:37 · 4460 阅读 · 1 评论 -
ViewPager+Fragment实现TabHost(可复用的类)
效果图:之前写了一个基于ViewPager+Fragment实现的Tabhost(具体详情: http://blog.csdn.net/zhangphil/article/details/43700807 ),但写的过于紧耦合,不便于复用。现在大规模重新整理重写了项目部分代码,便于以后再工程中复用。主要重写了几个方法,供以后使用重写:protected Fragment原创 2015-02-11 14:16:18 · 1555 阅读 · 0 评论 -
Android SystemClock
import android.os.SystemClock;Android官方文档:public static longelapsedRealtime ()Returns milliseconds since boot, including time spent in sleep.返回Android系统启动至今的时间。public static void原创 2015-02-24 17:36:31 · 1536 阅读 · 0 评论 -
ViewPager+Fragment添加一行若干小红球滚动指示器指示当前ViewPager翻阅位置(可供第三方使用的类)
效果图如下:ViewPager+Fragment添加一行若干小红球滚动指示器指示当前ViewPager翻阅位置(可供第三方使用的类)。类似现在通用的新闻客户端头部,会放置几张图片供新闻阅读者翻阅,同时放置一行小圆球根据用户翻阅的位置相应的滚动,标识出当前第几页。该项目开放出几个用以重载的方法函数供第三方使用:protected Fragment getFragmentA原创 2015-02-11 11:23:17 · 1897 阅读 · 0 评论 -
HorizontalScrollView不显示滚动条,布局完全填充的方法
其实就是两个基本属性的设置。若不显示滚动条,则在XML中写:android:scrollbars="none"默认情况下,在HorizontalScrollView中写一个线性布局(水平),但发现添加的子View无法完全充满整个界面,其实在布局文件XML中设置HorizontalScrollView的一个属性即可:android:fillViewport="true"原创 2015-02-11 11:43:39 · 5213 阅读 · 0 评论 -
Windows下,Ant自动化编译Android项目具体步骤和方法
备注:若Android项目引用有第三方库,步骤和方法亦适用。 前提是已经安装好Ant。1,首先需要创建一个批处理命令(*.bat)文件:Ant for Android.bat,文件内写入以下命令:set path=C:\Windows\System32;D:\Java\JDK\bin;D:\Ant\apache-ant-1.9.3\bin;D:\A原创 2015-02-11 16:13:09 · 1441 阅读 · 0 评论 -
Android任意时刻、任意代码处全屏
public void toggleFullscreen(boolean fullScreen) { //fullScreen为true时全屏,否则相反 WindowManager.LayoutParams attrs = getWindow().getAttributes(); if (fullScreen) { attrs原创 2015-02-12 20:10:31 · 1180 阅读 · 0 评论 -
Android Drawable 转化成 Bitmap
/*Java代码 将Drawable转化为Bitmap */ Bitmap drawableToBitmap(Drawable drawable) { int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); Bitmap bitmap原创 2015-02-12 20:08:00 · 2028 阅读 · 0 评论 -
替换ExpandableListView右边箭头Group Indicator(小图标)
先在drawable目录下建立xml文件: <item android:state_expanded="true" android:drawable="@drawable/up_indicator" /> <item android:state_expanded="false" android:drawable="@drawable/d原创 2015-02-12 20:08:51 · 3593 阅读 · 0 评论 -
Android检查设备是否联网
public static boolean isConnect(Context context) { ConnectivityManager connectionManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectionManager转载 2015-02-13 15:51:20 · 1529 阅读 · 0 评论 -
Android判断设备是否打开WIFI、GPRS数据连接
代码摘要:import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; ConnectivityManager cm; cm = (ConnectivityManager) getSystemService(Context原创 2015-02-13 21:07:48 · 2933 阅读 · 2 评论 -
Android保持屏幕常亮
// 保持Android设备屏幕灯长亮 public static void setScreenBright(Activity activity, boolean keepScreenOn) { if (keepScreenOn) { activity.getWindow().addFlags( WindowManager.LayoutParams.FLAG_KEEP_SCR原创 2015-02-27 09:50:24 · 2204 阅读 · 0 评论 -
Android手势缩放图片以及图片黏贴在手指随手势移动
一个Android手势缩放图片的工具类;同时,此类还实现另外一个功能:当手指按在触屏上移动时候,图片“黏贴”在手指上随手指移动而整体移动。具体使用方法可以是这样:先new一个此类的实例,然后在ImageView的方法setOnTouchListener(new ImageViewOnMultiTouchListener());例如:ImageViewOnMultiTouchListen原创 2015-02-27 11:10:42 · 3702 阅读 · 1 评论 -
Android解压缩ZIP / GZIP数据(基于InflaterInputStream实现)
在实际的项目代码使用过程中,发现如果用Java类库标准指定的GZIPInputStream读取压缩数据解压不能稳定工作,原因不明。反而使用InflaterInputStream可以替代GZIPInputStream稳定、正常工作,现在把基于InflaterInputStream的zip\gzip解压代码工具方法给出:public static byte[] decompress(byt原创 2015-02-13 15:56:33 · 5795 阅读 · 2 评论 -
Android自动化编译设置AndroidManifest.xml中package值(包名)
手动修改Android的AndroidManifest.xml中package值(包名)很简单,手动修改即可。但是项目中需要把Android的项目源代码放到服务器端在客户下载时候动态编译生成,且生成的app签名相同但包名不同(若此时包名相同就是相同的app),这种需求需要在服务器端自动化编译Android源代码时候自动调整AndroidManifest.xml中package值才能实现。查阅相关资原创 2015-03-03 09:51:24 · 8569 阅读 · 0 评论 -
Android ViewPager循环左右自动滑动加载Page
package zhangphil.auto_viewpager;import java.util.ArrayList;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter原创 2015-03-25 17:40:52 · 3460 阅读 · 0 评论 -
Android创建快捷方式图标
一个方法,在APP需要的时候调用该方法即可:public void createShortcutIconInHomeScreen() { Intent addIntent = new Intent(); addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent()); addIntent.putExtra(Intent原创 2015-03-03 10:53:26 · 2848 阅读 · 0 评论 -
使用Android新式LruCache缓存图片,基于线程池异步加载图片
import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.concurrent.ExecutorServic原创 2015-03-05 14:35:26 · 2467 阅读 · 0 评论 -
集成Android SlidingMenu(SlideMenu)
左右效果图如下:左边右边Android SlidingMenu(SlideMenu)是一个开源项目框架。在git上的下载地址:https://github.com/jfeinstein10/SlidingMenu现在基于Fragment给出一个简单的左边+右边的SlidingMenu(SlideMenu) 。首先要引入第三方库,这不比多说,现到git原创 2015-03-05 10:12:10 · 3295 阅读 · 0 评论 -
Android下拉/上拉刷新ListView之Android-PullToRefresh
Android下拉/上拉刷新ListView之Android-PullToRefreshAndroid下拉和上拉刷新ListView列表内容的的一个优秀开源框架,在github上的项目链接地址:https://github.com/chrisbanes/Android-PullToRefresh该PullToRefresh第三方控件功能强大,使用方便。具体使用方法:(1原创 2015-03-26 11:32:51 · 2074 阅读 · 2 评论 -
Android LinearLayout使用selector改变交互时背景颜色
换言之,就像Android Button一样,基于布局文件,把LinearLayout做成一个可以在用户交互触摸点击时候背景颜色有所改变的控件。具体方法:(1)在LinearLayout属性中写: android:background="@drawable/selector"(2)在drawable目录下新建selector.xml文件,设置状态和焦点事件响应的背景。(原创 2015-03-27 09:59:16 · 11437 阅读 · 0 评论 -
基于Java LinkedList,实现Android大数据缓存策略
import java.util.HashMap;import java.util.LinkedList;/* * 基于Java LinkedList,实现Android大数据缓存策略 * 作者:Zhang Phil * 原文出处:http://blog.csdn.net/zhangphil * * 实现原理:原理的模型认为:在LinkedList的头部元素是最旧的缓存数据,在L原创 2015-03-07 15:36:16 · 3050 阅读 · 0 评论 -
Android异步网络请求开源框架Volley
Android开源框架Volley。Android平台中比较优秀的异步网络请求的开源框架。官方链接地址:https://android.googlesource.com/platform/frameworks/volley 在这篇文章(系列)中有详细介绍。《Android Volley详细介绍》:http://blog.csdn.net/guolin_blog/articl转载 2015-03-10 15:09:37 · 1244 阅读 · 0 评论 -
Android为图片添加水印文字
import android.os.Bundle;import android.widget.ImageView;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.gr原创 2015-03-11 16:03:58 · 6755 阅读 · 0 评论 -
Android View转换成图片保存
package zhangphil.viewtoimage;import java.io.File;import java.io.FileOutputStream;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.view.View;imp原创 2015-03-12 09:37:18 · 11522 阅读 · 1 评论 -
基于ViewPagerIndicator的UnderlinePageIndicator,ViewPager选项卡底部滑块衬线滑动控件
《基于ViewPagerIndicator的UnderlinePageIndicator,ViewPager选项卡底部滑块衬线滑动控件》 基于github上的第三方开源的ViewPagerIndicator的UnderlinePageIndicator( 附:地址 ),自己写的一个在选项卡底部有衬线的滑动控件。 控件效果图如图所示。有一个特别的效果是:头部的选项卡在View原创 2015-03-30 15:57:29 · 4483 阅读 · 3 评论 -
Android系统自带录屏(动态截屏)功能
Android系统(Android 4.4 或以上)自带有录屏(动态截屏)功能,基于命令行。具体方法是:adb shell screenrecord /sdcard/myrecord.mp4这段命令在控制台执行后,Android系统将立即对设备的屏幕录制屏幕的视频。adb shell screenrecord 是执行录屏;sdcard/myrecord.mp4 是视频文件存放的原创 2015-03-30 15:35:33 · 5946 阅读 · 0 评论 -
Android ViewPager实现Tabhost选项卡底部滑块动态滑动过渡
《Android ViewPager实现Tabhost选项卡底部滑块动态滑动过渡》之前基于github上的第三方开源控件ViewPagerIndicator的UnderlinePageIndicator(原文链接:http://blog.csdn.net/zhangphil/article/details/44752213),自己写了一个底部带有滑块、且当ViewPager页面切换时候原创 2015-03-31 11:21:10 · 4180 阅读 · 0 评论 -
基于“ViewHolder”技术提升Android ListView中Item View加载效率
对于提升Android中频繁使用的ListView子Item View的加载效率,基于两点基本考虑:1,Android的View的创建比较消耗资源;2,findViewById()也不是最快的。所以在实际开发中经常使用的适配器中的getView()方法:public View getView(int position, View convertView, ViewGroup par原创 2015-03-31 15:00:05 · 2204 阅读 · 0 评论 -
Android设置头像,手机拍照或从本地相册选取图片作为头像
【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。2,让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像。我现在写一个简单的完整代码例子,说明如何在Android中实现上述两个头像设置功能。MainAc原创 2015-04-02 11:21:20 · 13498 阅读 · 6 评论 -
Android圆线按钮带进度显示
先看效果图:这是一个在github上的开源控件按钮View(点击此处查看),同时带有进度。使用方法:把该项目从github上下载下来导入到eclipse,然后作为库,接下来在其他项目中直接引用即可。然而,我感觉原生项目中的个别细节代码不是太完善,我在它的MasterLayout.java类增加了一些字段和方法:// 增加的值,by Phil publi原创 2015-04-01 16:15:13 · 2766 阅读 · 1 评论 -
Android二维码扫描之ZXing快速项目集成
《Android二维码扫描之ZXing快速项目集成》二维码扫描现在是一直比较多的应用场景,Android的开源项目ZXing提供了完整、成熟的解决方案,如果仅仅是出于快速开发的目的,可以根据自己的项目需要,把ZXing官方提供的项目稍加裁剪,就可以快速的集成到自己的项目中。下面详细演示和介绍如何实现基于ZXing官方提供的源码,快速集成二维码扫描功能到自己项目中的解决方案。(第1步):到Z原创 2015-04-07 11:19:09 · 11619 阅读 · 0 评论 -
Android底部弹出iOS7风格对话选项框
《Android底部弹出iOS7风格对话选项框》效果图如下:网上流传的Android底部弹出iOS7风格的对话选项框开源代码,原作者不详。我在网上流传的代码基础上改进了一些地方,把原来作为Application发布的代码整理成一个Android的Library,如果在未来的Android项目中需要这样的对话选项框样式,则只需要下载我上次到CSDN的完整库项目(完原创 2015-04-08 14:22:46 · 4728 阅读 · 1 评论 -
Android进阶:Android的进程,线程
本文翻译自Android官方文档当一个Android应用程序组件启动时候,如果此时这个程序的其他组件没有正在运行,那么系统会为这个程序以单一线程的形式启动一个新的Linux 进程。默认情况下,同一应用程序下的所有组件都运行再相同的进程和线程(一般称为程序的“主”线程)中。如果一个应用组件启动但这个应用的进程已经存在了(因为这个应用的其他组件已经在之前启动了),那么这个组件将会在转载 2015-04-14 16:22:03 · 1204 阅读 · 0 评论 -
一个最简单的基于Android SearchView的搜索框
Android SearchView和其他Android View类似,直接可以作为一个View使用,现在给出一个最简单的SearchView使用方式。在后续的文章中,将一步一步由浅入深从简单到复杂介绍其他Android系统的搜索功能(如搜索联想和搜索建议)。MainActivity.javapackage zhangphil.searchview;import android原创 2015-04-15 16:11:25 · 5202 阅读 · 0 评论 -
Android圆形头像图Circle ImageView
《Android圆形头像图Circle ImageView》需要处理的原始图(pic):使用CircleImageView处理后的图(作为头像):现在很多的应用都有设置头像的功能,如QQ、微信、微博等。头像有标准的四方形,也有圆形(如QQ)。现在结合他人的代码加以修改,给出一个以原始图形中心为原点,修剪图片为头像的工具类,此类可以直接在布局文件中加载使用,比原创 2015-04-09 15:17:06 · 8929 阅读 · 0 评论 -
Android实现Windows 8磁贴(Tile)样式按钮
《Android实现Windows 8磁贴(Tile)样式按钮》效果图如下:我在网上流传的代码基础上精简、整理出一个简单的类,我暂时把它命名为:Windows8TileImageView,即Windows 8磁贴(Tile)样式按钮,Windows8TileImageView其实就是继承于标准Android ImageView,单击该Windows8TileImageView有收缩、侧原创 2015-04-09 11:05:47 · 3376 阅读 · 1 评论 -
如何使用Android最新的RecyclerView取代ListView?
效果图如下:使用RecyclerView之前需要先导入android.support.v7.widget.RecyclerView所在的jar包。就在support.v7下面,目录结构如下:...\android-sdk-windows\extras\android\support\v7\recyclerview\libs\android-support-v7-recycler原创 2015-04-21 15:17:31 · 2417 阅读 · 0 评论 -
Android搜索建议(搜索联想)
Android的搜索建议,简言之,就是说当用户输入某一个关键词后,系统自动给出几个含有相近关键词的搜索建议。效果图如下:MainActivity.javapackage zhangphil.search;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import an原创 2015-04-17 11:00:33 · 5418 阅读 · 1 评论