android 札记 - Android中开发中常用代码
android 笔记 --- Android中开发中常用代码
1:查看是否有存储卡插入
2:让某个Activity透明
以下是Theme_Transparent的定义(注意transparent_bg是一副透明的图片)
3:在屏幕元素中设置句柄
使用Activity.findViewById来取得屏幕上的元素的句柄. 使用该句柄您可以设置或获取任何该对象外露的值.
4:发送短信
5:发送彩信
7:发送Mail
8:注册一个BroadcastReceiver
9:定义ContentObserver,监听某个数据表
10:获得 手机UA
11:清空手机上Cookie
12:建立GPRS连接
13:PreferenceActivity 用法
14:通过HttpClient从指定server获取数据
15:显示toast
16.获取android屏幕大小
在Nexus one下测试,结果是w:480,h:800,这个数值不随屏幕横向或纵向而变化。
这里牵扯到多个对象:
* Activity
* Window:Activity打开一个Window(可以认为Activity包含一个Window),可以在Window中加入View,目前只有一个实现Window的类,PhoneWindow,以后也许会有PadWindow?
* WindowManager:Activity包含一个WindowManager,可以通过它立即删除window中的view,还可通过它得到Display
* Display,应该是代表显示器,可以得到长、宽,以及屏幕的方向(横向还是纵向)等。
17.界面无标题栏和全屏效果的实现方式
使用xml的方式,在manifest文件中,在需要的Activity元素中加入属性:
这是全屏的。
如果只是不要标题栏:
这样的好处是不需要写程序语句。程序的写法是,无标题栏:
requestWindowFeature(Window.FEATURE_NO_TITLE);全屏:
程序的写法,适用于动态配置是否全屏的情况下。
1:查看是否有存储卡插入
String status=Environment.getExternalStorageState(); if(status.equals(Enviroment.MEDIA_MOUNTED)) { 说明有SD卡插入 }
2:让某个Activity透明
OnCreate中不设Layout this.setTheme(R.style.Theme_Transparent);
以下是Theme_Transparent的定义(注意transparent_bg是一副透明的图片)
3:在屏幕元素中设置句柄
使用Activity.findViewById来取得屏幕上的元素的句柄. 使用该句柄您可以设置或获取任何该对象外露的值.
TextView msgTextView = (TextView)findViewById(R.id.msg); msgTextView.setText(R.string.push_me);
4:发送短信
String body=”this is mms demo”; Intent mmsintent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(”smsto”, number, null)); mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body); mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, true); mmsintent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, true); startActivity(mmsintent);
5:发送彩信
StringBuilder sb = new StringBuilder(); sb.append(”file://”); sb.append(fd.getAbsoluteFile()); Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(”mmsto”, number, null)); // Below extra datas are all optional. intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_SUBJECT, subject); intent.putExtra(Messaging.KEY_ACTION_SENDTO_MESSAGE_BODY, body); intent.putExtra(Messaging.KEY_ACTION_SENDTO_CONTENT_URI, sb.toString()); intent.putExtra(Messaging.KEY_ACTION_SENDTO_COMPOSE_MODE, composeMode); intent.putExtra(Messaging.KEY_ACTION_SENDTO_EXIT_ON_SENT, exitOnSent); startActivity(intent);
7:发送Mail
mime = “img/jpg”; shareIntent.setDataAndType(Uri.fromFile(fd), mime); shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(fd)); shareIntent.putExtra(Intent.EXTRA_SUBJECT, subject); shareIntent.putExtra(Intent.EXTRA_TEXT, body);
8:注册一个BroadcastReceiver
registerReceiver(mMasterResetReciever, new IntentFilter(”oms.action.MASTERRESET”)); private BroadcastReceiver mMasterResetReciever = new BroadcastReceiver() { public void onReceive(Context context, Intent intent){ String action = intent.getAction(); if(”oms.action.MASTERRESET”.equals(action)){ RecoverDefaultConfig(); } } };
9:定义ContentObserver,监听某个数据表
private ContentObserver mDownloadsObserver = new DownloadsChangeObserver(Downloads.CONTENT_URI); private class DownloadsChangeObserver extends ContentObserver { public DownloadsChangeObserver(Uri uri) { super(new Handler()); } @Override public void onChange(boolean selfChange) {} }
10:获得 手机UA
public String getUserAgent() { String user_agent = ProductProperties.get(ProductProperties.USER_AGENT_KEY, null); return user_agent; }
11:清空手机上Cookie
CookieSyncManager.createInstance(getApplicationContext()); CookieManager.getInstance().removeAllCookie();
12:建立GPRS连接
//Dial the GPRS link. private boolean openDataConnection() { // Set up data connection. DataConnection conn = DataConnection.getInstance(); if (connectMode == 0) { ret = conn.openConnection(mContext, “cmwap”, “cmwap”, “cmwap”); } else { ret = conn.openConnection(mContext, “cmnet”, “”, “”); } }
13:PreferenceActivity 用法
public class Setting extends PreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); } } Setting.xml: android:key=”seting2″ android:title=”@string/seting2″ android:summary=”@string/seting2″/> android:key=”seting1″ android:title=”@string/seting1″ android:summaryOff=”@string/seting1summaryOff” android:summaryOn=”@stringseting1summaryOff”/>
14:通过HttpClient从指定server获取数据
DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet method = new HttpGet(“http://www.baidu.com/1.html”); HttpResponse resp; Reader reader = null; try { // AllClientPNames.TIMEOUT HttpParams params = new BasicHttpParams(); params.setIntParameter(AllClientPNames.CONNECTION_TIMEOUT, 10000); httpClient.setParams(params); resp = httpClient.execute(method); int status = resp.getStatusLine().getStatusCode(); if (status != HttpStatus.SC_OK) return false; // HttpStatus.SC_OK; return true; } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (reader != null) try { reader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
15:显示toast
Toast.makeText(this._getApplicationContext(), R.string._item, Toast.LENGTH_SHORT).show();
16.获取android屏幕大小
Log.d("tag1", "width>>" + this.getWindow().getWindowManager().getDefaultDisplay() .getWidth() + " height>>" + this.getWindow().getWindowManager().getDefaultDisplay() .getHeight());
在Nexus one下测试,结果是w:480,h:800,这个数值不随屏幕横向或纵向而变化。
这里牵扯到多个对象:
* Activity
* Window:Activity打开一个Window(可以认为Activity包含一个Window),可以在Window中加入View,目前只有一个实现Window的类,PhoneWindow,以后也许会有PadWindow?
* WindowManager:Activity包含一个WindowManager,可以通过它立即删除window中的view,还可通过它得到Display
* Display,应该是代表显示器,可以得到长、宽,以及屏幕的方向(横向还是纵向)等。
17.界面无标题栏和全屏效果的实现方式
使用xml的方式,在manifest文件中,在需要的Activity元素中加入属性:
<activity android:name=".TextButtonActivity" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
这是全屏的。
如果只是不要标题栏:
这样的好处是不需要写程序语句。程序的写法是,无标题栏:
requestWindowFeature(Window.FEATURE_NO_TITLE);全屏:
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN);
程序的写法,适用于动态配置是否全屏的情况下。