since.2006  

Android程序运行时可以以编程方式动态创建一个程序快捷方式在home screen上,但并不是每种类型的程序都适合在桌面上创建快捷方式。

比如记帐类程序就比较适合自动创建一个快捷方式在home screen上,方便每天对消费进行记录,游戏类型的游戏不是那么的适合。

创建步骤为:

1.在AndroidManifest.xml中添加权限声明

<!-- AndroidManifest.xml -->


<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />


<!-- 新增创建快捷方式权限声明 -->

2.调用下面类进行添加

package com.since2006.helper;

import android.content.Context;
import android.content.Intent;
import android.os.Parcelable;

public class ShortcutHelper {

 private static final String TAG = "ShortcutHelper";

 private static final String ACTION_ADD_SHORTCUT = "com.android.launcher.action.INSTALL_SHORTCUT";

 /**
  * 添加一个程序快捷方式到桌面
  *
  * 调用此方法,程序需要有"com.android.launcher.permission.INSTALL_SHORTCUT"权限
  *
  * className: 点击快捷方式要执行的类
  */
 public static void addShortcutToHomeScreen(Context context, String packageName, String className, int shortcutIcon, int shortcutName) {
  
  Parcelable iconRes = Intent.ShortcutIconResource.fromContext(context, shortcutIcon);
  Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
  shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
  shortcutIntent.setClassName(packageName, className);

  Intent intent = new Intent(ACTION_ADD_SHORTCUT);
  intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
  intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, context.getText(shortcutName));
  intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);

  context.sendBroadcast(intent);
 }

}

调用示例:

/**
 * context
 * packageName
 * className: 点击快捷方式调用的类
 * shortcutIcon: 快捷方式图标
 * shortcutName: 快捷方式名称
 */
ShortcutHelper.addShortcutToHomeScreen(context, getPackageName(), ".ui.Login", R.drawable.logo, R.string.app_name);
Posted by hee at 09:07 AM | Permalink | 评论(0)
有时应用需要访问本地应用以调试一些功能,在模拟器中使用127.0.0.1或localhost访问的是模拟器本身。如果需要访问本地应用可以使用特定IP:10.0.2.2

Posted by hee at 10:02 AM | Permalink | 评论(0)

Android为了简化设计并且兼容更多的手机屏幕,系统依照尺寸和分辨率对屏幕进行了区分:
三种尺寸:大、中、小。
三种密度:高(hdpi)、中(mdpi)、低(ldpi)。

各种密度下图标大小
类型 低密度屏幕(ldpi) 中密度屏幕(mdpi) 高密度屏幕(hdpi)
启动器 36 x 36 48 x 48 72 x 72
菜单 36 x 36 48 x 48 72 x 72
状态栏 24 x 24 32 x 32 48 x 48
标签 24 x 24 32 x 32 48 x 48
对话 24 x 24 32 x 32 48 x 48
列表视图 24 x 24 32 x 32 48 x 48

 

各种密度的区分
屏幕 宽度 (Pixels) 高度 (Pixels) 尺寸 (inches) 大小 密度
QVGA 240 320 2.6 - 3.0 Small Low
WQVGA 240 400 3.2 - 3.5 Normal Low
FWQVGA 240 432 3.5 - 3.8 Normal Low
HVGA 320 480 3.0 - 3.5 Normal Medium
WVGA 480 800 3.3 - 4.0 Normal High
FWVGA 480 854 3.5 - 4.0 Normal High
WVGA 480 800 4.8 - 5.5 Large Medium
FWVGA 480 854 5.0 - 5.8 Large Medium
Posted by hee at 14:12 PM | Permalink | 评论(0)

Android系统中自带了很多图标,我们的程序可以方便使用,以前一直在这个页面查看系统图标列表,但最近经常出现访问不了的情况,索性自己将目前几大版本(1.5, 1.6, 2.1)的图标导出留做以后参考。

Android™ 1.5 android.R.drawable Icon Resources
http://since2006.com/android/1.5-drawables.php

Android™ 1.6 android.R.drawable Icon Resources
http://since2006.com/android/1.6-drawables.php

Android™ 2.1 android.R.drawable Icon Resources
http://since2006.com/android/2.1-drawables.php

 

Posted by hee at 14:06 PM | Permalink | 评论(1)
2010 Google I/O大会于美国旧金山当地时间5月19日上午10点30分正式开幕,会中Google发布了包括WebM、Wave、Chrome Web Store等新产品,在会场中Google也设置了一个展示柜,从G1到最新的EVO 4G,几乎所有厂商推出的Android手机齐聚一堂。

Android Central网站编辑从现场拍了视频,俺将那些手机列表手工整理了出来。Android个人开发者们,准备好兼容这么多手机了吗? :-)

2分45秒有一款机型没看清楚。

HTC T-Mobile G1
HTC EVO 4G
HTC Desire
HTC Legend
HTC Magic
HTC Hero
HTC Tattoo
HTC Nexus One
HTC DROID Eris
HTC DROID Incredible

MOTO XT800
MOTO DEVOUR
MOTO CLIQ / DEXT
MOTO CLIQ XT / DEXT XT
MOTO MOTOROI
MOTO DROID
MOTO BACKFLIP

Samsung Acclaim/SCH-R880
Samsung Galaxy Beam/GT-I8520
Samsung Galaxy S/GT-I900
Samsung Galaxy 3/GT-I5801
Samsung Galaxy 5/GT-I5500
Samsung Galaxy A/SHW-M100S

F902
F901
F903
F911
F913

Huawei U8100
Huawei U8110
Huawei U8120

SHARP KDDIIS01
SHARP NTT docomo SH-10B

ZTE-SMOOTH
ZTE-LINK
ZTE-BLADE

LG GT540
LG GW620
LG VS740

ACER Liquid stream
ACER Liquid e
ACER beTouch E400

Sony Ericsson Xperia X10
Sony Ericsson Xperia X10 mini
Sony Ericsson Xperia X10 mini pro

Dell Aero
Dell Streak

SA401
SC402

Philips GoGear Connect
Pantech IM-600S Sirius
Kyocera Zio M6000
TCT Mobile Aicatel Mobilephones OT-980

阅读全文 "2010 Google I/O上展示的Android手机" »

Posted by hee at 14:05 PM | Permalink | 评论(1)

系统相册显示SD卡照片时,为了提高效率不是遍历文件系统中每个目录中的图片后显示出来。而且直接查询系统数据库中的图片信息记录显示。

所以自己新建图片后,打开系统相册时,会找不到所新建的图片。这时可以通过几种方法将新建的图片插入到系统数据库中。

使用Broadcast

Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(new File("/sdcard/image.jpg"));
intent.setData(uri);
mContext.sendBroadcast(intent);

使用MediaScannerConnection

final MediaScannerConnection msc = new MediaScannerConnection(mContext, new MediaScannerConnectionClient() {
 public void onMediaScannerConnected() {
  msc.scanFile("/sdcard/image.jpg", "image/jpeg");
 }
 public void onScanCompleted(String path, Uri uri) {
  Log.v(TAG, "scan completed");
  msc.disconnect();
 }
});
msc.connect();

这两种方法任何一种即可,第二种方法可以通过回调的参数uri取得插入到数据库后的主键id进行后续操作。

 

Posted by hee at 21:03 PM | Permalink | 评论(0)