Android Snippet

1.获取屏幕的分辨率

在 Activity 里使用如下代码,宽度和高度的单位是像素

Display display = getWindowManager().getDefaultDisplay(); 
int screenWidth = display.getWidth(); 
int screenHeight = display.getHeight();

2.绘制文本

使用 FontMetrics 类

参考

http://www.iteye.com/topic/474526

3.禁止自动横竖屏切换

在AndroidManifest.xml的Activity节点加入如下属性

android:screenOrientation="portrait"

portrait是纵向,landscape是横向

4.Resources and Assets

无论是使用Res\raw还是使用Asset存储资源文件,文件大小UNCOMPRESS限制为1MB

参考

http://wayfarer.iteye.com/blog/547174

5.SDK 1.6 新增加SD卡写入权限

在AndroidManifest.xml加入以下代码

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

SDK1.6之前的项目自适应,无需此权限也可以写入SD卡。

6.在eclipse中查看Android Framework源代码

代码下载

  1. SDK 1.5  http://www.box.net/shared/16au19tqlp
  2. SDK 1.6  http://www.box.net/shared/dh4dr9ir7j
  3. SDK 2.2  http://www.box.net/shared/dic2t0blj1

参考

http://www.iteye.com/topic/534010

7.给View注册ContextMenu

void  setOnCreateContextMenuListener (View.OnCreateContextMenuListener   l)

Register a callback to be invoked when the context menu for this view is being built.

8.给Preference设置Intent

void  setIntent (Intent   intent)

Sets an  Intent   to be used for  startActivity(Intent)   when this Preference is clicked.

9.包含CheckBox的ListView

ListView item中加入checkbox后onListItemClick 事件无法触发。 
原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。 
解决方案:设置checkbox的android:focusable="false"

10.取得当前的Locale

Locale locale = context.getResources().getConfiguration().locale;

11.使用android.text.format.Time类代替java.util.Calendar类

The Time class is a faster replacement for the java.util.Calendar and java.util.GregorianCalendar classes. An instance of the Time class represents a moment in time, specified with second precision. It is modelled after struct tm, and in fact, uses struct tm to implement most of the functionality.

12.调整WebView字体大小

WebView.getSettings().setDefaultFontSize()
WebView.getSettings().setDefaultZoom()

13.View Animation总结

参考

14.检查网络状态

public
 static
 boolean isNetworkAvailable(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = cm.getActiveNetworkInfo();
    
    return
 (info != null
 && info.isConnected());
}
 
 
public
 static
 boolean isWifiConnected(Context context) { 
    return
 getNetworkState(context, ConnectivityManager.TYPE_WIFI) == State.CONNECTED;
}
 
public
 static
 boolean isMobileConnected(Context context) {
    return
 getNetworkState(context, ConnectivityManager.TYPE_MOBILE) == State.CONNECTED;
}
 
private
 static
 State getNetworkState(Context context, int
 networkType) {
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo info = cm.getNetworkInfo(networkType);
    
    return
 info == null
 ? null
 : info.getState();    
}

需要加入权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

15.Parse JSON String

参考

  1. http://www.androidcompetencycenter.com/2009/10/json-parsing-in-android/
  2. http://wiki.fasterxml.com/JacksonInFiveMinutes
  3. http://stackoverflow.com/questions/2818697/sending-and-parsing-json-in-android

16.设置EditText的输入模式

url, password, email, 电话键盘等

设置  android:inputType   属性

17.Crash Report

  1. http://code.google.com/p/acra/
  2. http://code.google.com/p/android-send-me-logs/

18.用户解锁消息

android.intent.action.USER_PRESENT

只能在代码里注册Receiver

19.屏幕消息

android.intent.action.SCREEN_ON

android.intent.action.SCREEN_OFF

只能在代码里注册Receiver

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值