`
阅读更多
如何让Drawable绕着中心旋转?
Animation a = new RotateAnimation(0.0f, 360.0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);
a.setRepeatCount(-1);
a.setDuration(1000);


如何控制Android LED灯颜色?
很多Android手机上都配有LED灯,比如HTC的手机在充电、新来短信等时候都会有响应的指示,其实很简单的这都是NotificationManager的一些参数而已,下面Android123给大家说下如何通过代码控制LED灯的闪烁,因为有些机型没有LED灯或颜色种类较少,发布时需要真机观察。
final int ID_LED=19871103; 
NotificationManager nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(); 
notification.ledARGB = 0xFFFFFF;  //这里是颜色,我们可以尝试改变,理论上0xFF0000是红色,0x00FF00是绿色
notification.ledOnMS = 100; 
notification.ledOffMS = 100; 
notification.flags = Notification.FLAG_SHOW_LIGHTS; 
nm.notify(ID_LED, notification); 
nm.cancel(ID_LED);


如何获取APK文件安装时间?
很多Android开发者想设计一个APK管理程序,获取APK文件的安装日期很多网友不是很明白。在早期Android123使用的方法是通过PackageManager类的getInstalledApplications方法返回一个ApplicationInfo数组,ApplicationInfo类中sourceDir可以获取APK的文件路径,从而使用File类读取文件的上次修改时间而实现。但这可能导致:
1. 无法获取原始的创建时间,可能很早就被创建了,之后被替换了。
2. 如果这个APK在一个私有的位置,比如app-private目录,使用Market付费购买的应用在这个位置,如果没有Root的Android手机是没有权限读取的,也导致获取时间失败。
在Android 2.3 API Level为9中,ApplicationInfo类新增的firstInstallTime和lastUpdateTime这两个字段,可以直接获取到APK的创建或上次修改的时间,即使是付费软件也能正常的获取。

如何区别单位px和dp以及sp?
px (pixels)像素 -- 一般我们HVGA代表320x480像素,这个用的比较多。
dip或dp (device independent pixels)设备独立像素 -- 这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA cwj推荐使用这个,不依赖像素。
sp (scaled pixels — best for text size)放大像素-- 主要处理字体的大小。
下面的几个是不常用的,大家也知道这里android123就不再过多的赘述。
in (inches)英寸
mm (millimeters)毫米 
pt (points)点


如何动态改变ImageView大小?
很多网友可能发现在layout.xml文件中定义了ImageView的绝对大小后,无法动态修改以后的大小显示,其实Android平台在设计UI控件时考虑到这个问题,为了适应不同的Drawable可以通过在xml的相关ImageView中加入android:scaleType="fitXY" 这行即可,但因为使用了缩放可能会造成当前UI有所变形。使用的前提是限制ImageView所在的层,可以使用一个内嵌的方法限制显示。

如何在Android中最简单的播放GIF动画?
GIF动画的原理就是逐帧播放,在Android中提供了AnimationDrawable类可以实现,有的网友写过GIF89A的解码方法在过去的J2ME平台移植到Android平台也能用,其实在Google Android上面开发目前2.2以后的固件支持的方法除了Flash Player外,更好的兼容方法就是使用万能的webkit浏览器了,我们直接在工程中内嵌一个webView,html中只要写上类似img src="http://android123.com.cn/cwj.gif" 这样的就可以了,当然了路径大家可以换成本地的,对于浏览器使用本地资源url为file://开头。 不过webView的资源消耗也不小,开个webView对象可能占用了至少8MB的RAM吧,保守估计,当然更多的要看插件和以及html的复杂程度所决定的。

如何调用手机系统拨号页面?
/*调出联系人界面*/
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(ContactsContract.Contacts.CONTENT_URI);//android2.X
startActivity(intent);

/* 调用拨号的画面 */
Intent myIntentDial = new Intent("android.intent.action.CALL_BUTTON");
startActivity(myIntentDial);

加权限:
<uses-permission android:name="android.permission.CALL_PHONE" />

如何取得GPS卫星个数?
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Iterator<GpsSatellite> iterator = manager.getGpsStatus(null).getSatellites().iterator();
int count = 0;
while (iterator.hasNext()) {
        count++;
}
return count; 


如何判断手机有无网络?
ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
		if (cwjManager.getActiveNetworkInfo() != null) {
			if (cwjManager.getActiveNetworkInfo().isAvailable()) {
				String type = cwjManager.getActiveNetworkInfo().getTypeName();
				System.out.println("_____________________-" + type);
			}
			;
		}else {
			System.out.println("_____________________-" + cwjManager.getActiveNetworkInfo());
		}

如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过 ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例,使用cwjManager.getActiveNetworkInfo().isAvailable(); 来返回是否有效,如果为True则表示当前Android手机已经联网,可能是WiFi或GPRS、HSDPA等等,具体的可以通过ConnectivityManager 类的getActiveNetworkInfo() 方法判断详细的接入方式,需要注意的是有关调用需要加入<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 这个权限,在真机上Market和Browser程序都使用了这个方法,来判断是否继续,同时在一些网络超时的时候也可以检查下网络连接是否存在,以免浪费手机上的电力资源。

如何获得自己程序的版本?
 private String mVersion;   
public String longVersion() {  
        if (mVersion == null) {  
            PackageManager pm = getPackageManager();  
            PackageInfo pi;  
            try {  
                pi = pm.getPackageInfo(getPackageName(), 0);  
                mVersion = pi.versionName;  
                System.out.println("mVersion-----------------> "+mVersion);  
            } catch (NameNotFoundException e) {  
                mVersion = ""; // failed, ignored  
            }  
        }  
        return mVersion;  
}  


drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
    系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

如何理解Context?
Context字面意思上下文。
    位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。
    常规需要Context实例的方法主要有各种Service实现的类,比如说SensorManager在实例化时需要getSystemService(String)方法就必须由Context的实例执行,还有一些私有的文件系统I/O比如说openFileInput以及常用的Toast的makeText方法等。

如何为Android MapView申请apiKey?
1.首先先要获取你的debug keystore位置:
  打开Eclipse--->Windows--->Preferences--->Android--->Build
查看默认的debug keystore位置,我的是C:\Documents and Settings\Android123\.android\debug.keystore
2.在cmd中执行:
  keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\Android123\.android\debug.keystore" -storepass android -keypass android
  双引号中的为你keystore位置
  执行结果:
  androiddebugkey, May 4, 2009, PrivateKeyEntry,
  Certificate fingerprint (MD5): XX:XX:XX:XX:XX:XX:XX:XX.............
  这里的XX:XX:XX:XX:XX:XX:XX:XX.............就是你的认证指纹
3.打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html
填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
  您的密钥是:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4.使用得到的apiKey:在layout中加入MapView
  <com.google.android.maps.MapView
          android:id="@+id/mapview"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:apiKey="XXXXXXXXXXXXXXXXXXXXXXXXXXXX" />

如何理解onInterceptTouchEvent()事件处理点击的承继关系?
onInterceptTouchEvent()的机制:
1. down事件首先会传递到onInterceptTouchEvent()方法
2. 如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return false,
   那么后续的move, up等事件将继续会先传递给该ViewGroup,之后才和down事件一样传递给最
   终的目标view的onTouchEvent()处理
3. 如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return true,
   那么后续的move, up等事件将不再传递给onInterceptTouchEvent(),而是和down事件一样
   传递给该ViewGroup的onTouchEvent()处理,注意,目标view将接收不到任何事件。
4. 如果最终需要处理事件的view的onTouchEvent()返回了false,那么该事件将被传递至其上一
   层次的view的onTouchEvent()处理
5. 如果最终需要处理事件的view 的onTouchEvent()返回了true,那么后续事件将可以继续传递
   给该view的onTouchEvent()处理

如何彻底关闭android应用程序(back按键)?
在开发android应用时,常常通过按返回键(即keyCode == KeyEvent.KEYCODE_BACK)就能关闭程序,其实大多情况下该应用还在任务里运行着,其实这不是我们想要的结果。
我们可以这样做,当用户点击自定义的退出按钮或返回键时(需要捕获动作),我们在onDestroy()里强制退出应用,或直接杀死进程,具体操作代码如下:
@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		
		//按下键盘上返回按钮
		if(keyCode == KeyEvent.KEYCODE_BACK){
						finish();
			return true;
		}else{		
			return super.onKeyDown(keyCode, event);
		}
	}
	@Override
	protected void onDestroy() {
		super.onDestroy();
		
		System.exit(0);
		//或者下面这种方式
		//android.os.Process.killProcess(android.os.Process.myPid()); 
	}


如何让所有Activty界面全去掉标题栏?
修改AndroidManifest.xml ,在application 标签中添加 。
android:theme="@android:style/Theme.NoTitleBar"

当同时有多个ImageView共同使用同一个资源文件例如:demo.png的时候,如果我们在利用代码控制其中一个ImageView的状态例如:alpha的时候,同时也会影响到别的ImageView的状态,这个时候我们可以通过下面的办法来避免这种情况的发生:
//res_ico 是一个图片资源文件id R.drawable.***
Drawable ico = getResources().getDrawable(res_ico);
ImageView iv = new ImageView(this);
iv.setBackgroundDrawable(ico);
iv.setClickable(false);
iv.setAdjustViewBounds(true);
ico.mutate().setAlpha(20);


如何判断GPS是否打开以及跳转到设置GPS界面?
检查GPS是否打开
locationManager.isProviderEnabled("gps"); 

转到GPS设置界面
startActivity(new Intent("android.settings.LOCATION_SOURCE_SETTINGS"));


如何获取手机版本等信息?
// 获取手机SDK 版本和版本号
System.out.println("version-> "+android.os.Build.VERSION.SDK);
System.out.println("version-> "+android.os.Build.VERSION.RELEASE);	
//获取产品型号
System.out.println("version-> "+android.os.Build.MODEL);


如何在Android开发之模拟按下Home键的效果 ?
 Intent i= new Intent(Intent.ACTION_MAIN);
 i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
//如果是服务里调用,必须加入new task标识
 i.addCategory(Intent.CATEGORY_HOME);


如何杀死进程?
在Android 2.2中新增了一个API可以帮助我们杀死后台进程,不过其调用的API Level最小为8,killBackgroundProcesses是android.app.ActivityManager类的方法,使用时必须在androidmanifest.xml文件中加入KILL_BACKGROUND_PROCESSES这个权限。
该方法的原型 public void killBackgroundProcesses (String packageName)  仅有一个参数为package Name,使用方法比较简单:
 ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
am.killBackgroundProcesses("cn.com.android123.cwj");   
// API Level至少为8才能使用


如何在子线程中通过handler操作界面元素?
android.os.Handler hander = new android.os.Handler();					hander.postDelayed(new Runnable()
{
public void run()
{
  ad.dismiss();
}
}, 5 * 1000);

如何清除桌面墙纸?
clearWallpaper();


不过我们需要设置墙纸更改权限:
<uses-permission android:name="android.permission.SET_WALLPAPER" />


如何申请访问SDCard的权限?
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
分享到:
评论
1 楼 shishoufeng 2015-06-10  
楼主确实很用心啊!学习了

相关推荐

    基于Android的记录点滴生活App设计与实现.pdf

    基于Android的记录点滴生活App设计与实现.pdf

    基于Android的儿童成长APP的设计与实现

    2、每日任务新视觉,可以对每日任务进行删除,执行每日任务操作便捷。 3、专家推荐模块,了解最新幼教知识,统计阅读时长,按时长奖励小红花。 4、家庭分享模块,分享宝宝成长点滴,每分享一次奖励5朵小红花。 5、...

    android 多任务的多线程断点续传的下载软件

    /* 点滴持续 下载引擎演示程序。更多代码在 https://gitee.com/drip_on/ldown_sample.git * ldown是一款跨平台多任务的多线程断点续传的下载软件, * 支持 HTTP / FTP / BT / Magnet 磁力链接等类型的文件下载;支持...

    Android应用源码精致备忘录+课程表项目

    本项目是Android课表与备忘录的集成,内部主要用了sqlite,是学习Android sqlite与Android其他知识点的很好的一个项目。课表可记录自己的课程,可随时根据需要更新课表,备忘录可记录自己的生活点滴,是一个不错的...

    深入理解Android:卷I--详细书签版

    第2章通过对android系统中的mediascanner进行分析,详细讲解了 android中十分重要的jni技术;第3章分析了init进程,揭示了通过解析init.rc来启动zygote以及属性服务的工作原理;第4章分析了zygote、systemserver等...

    我对学习delphiTeacher的《delphi调用及封装Android原生控件》的学习和研究点滴体会之二

    学习和研究点滴体会之二  摘要:  本文为3月21日晚学习了delphiTeacher王老师的《delphi调用及封装Android原生控件》后的体会之二。  关于Android原生应用程序、Android原生窗体、Android原生窗体中的控件和...

    Android开发的多媒体备忘录(含代码)

    基于Android开发出来的一款多媒体备忘录,该作品曾获得过奖项,支持通过文本、语音、视频三种方法来记录生活中的点滴,附加送了源代码,

    poco相机 android v1.5.0

    2、照片自动美化处理:可以对照片即时进行颜色处理、特效、边框等美化功能,超过40种后期自动“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、高级PS美化模式:可在数十款特效美化...

    Android代码-书签助手

    BookmarkHelper(书签助手)是一款Android平台下,浏览器书签转换工具类APP,运行时需要Root权限,目标全面兼容主流Android浏览器相互转换书签数据,暂未考虑支持iOS或桌面端。 使用举例:从Chrome浏览器中,提取...

    点滴音乐播放器

    支持从本地读取音乐文件然后显示到界面,歌曲的的上下曲 随机播放 顺序播放 单曲循环等控制 以及支持歌词的滚动显示(先确定本地文件中有歌词文件)

    最新 微信(Android) v6.1.0.56

    2.朋友圈,跟朋友们分享生活点滴。 3.摇一摇、查看附近的人,世界不再有陌生人。 4.扫一扫,可以扫商品条码、图书封面、CD封面,甚至扫描英文单词来翻译成中文。 5.公众帐号,用微信关注明星、看新闻、设提醒… 6....

    基于Android匿名社交论坛 作业.zip

    此外,这款应用还具有丰富的社交功能,如私信、关注、点赞等,用户可以在这里结识新的朋友,分享生活的点滴。同时,应用还有严格的内容审核机制,确保社区环境的健康和谐。在界面设计上,这款应用采用了简洁明了的...

    Android应用源码YiBo聚合微博客户端

    本项目是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,享受快乐微博;...

    poco相机 android v1.5.0_sp1

    2、照片自动美化处理:可以对照片即时进行颜色处理、特效、边框等美化功能,超过40种后期自动“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、高级PS美化模式:可在数十款特效美化...

    Android应用源码YiBo聚合微博客户端.zip

    本项目是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,享受快乐...

    poco相机 android V1.0.4

    2、照片美化处理:可以对照片即时进行颜色处理、装饰、边框等美化功能,超过40种后期“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、一键多平台分享:可将照片一键分享到新浪微博...

    我的android学习记录

    个人在学习过程中,所记录的点滴,希望能被有需要的人拾起

    Android aidl的使用

    Android aidl的使用,实现跨进程的通信,初学,希望大家多多指教,大佬勿喷。

    POCO相机 android v1.6.1_sp1

    2、照片自动美化处理:可以对照片即时进行颜色处理、特效、边框等美化功能,超过40种后期自动“PS”功能,尤其适合喜欢摄影、捕捉生活点滴、喜欢LOMO、连拍、抓拍等用户群; 3、高级PS美化模式:可在数十款特效美化...

    android开发论文

    论文按照老师要求写的!有八九千字,废话有点多!可以选择不下!

Global site tag (gtag.js) - Google Analytics