付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】Android開發(fā)的小經(jīng)驗有哪些
這篇文章將為大家詳細(xì)講解有關(guān)Android開發(fā)的小經(jīng)驗有哪些,文章內(nèi)容質(zhì)量較高,因此在下分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。1.TextView中的getTextSize返回值是以像素(px)為單位的,而setTextSize()是以sp為單位的.所以如果直接用返回的值來設(shè)置會出錯,解決辦法是用setTextSize()的另外一種形式,可以指定單位:<span
style="font-size:16px;">setTextSize(int
unit,
int
size)
TypedValue.COMPLEX_UNIT_PX
:
Pixels
TypedValue.COMPLEX_UNIT_SP
:
Scaled
Pixels
TypedValue.COMPLEX_UNIT_DIP
:
Device
Independent
Pixels</span>2.在繼承自View時,繪制bitmap時,需要將圖片放到新建的drawable-xdpi中,否則容易出現(xiàn)繪制大小發(fā)生改變3.在文字中加下劃線:textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);4.scrollView是繼承自frameLayout,所以在使用LayoutParams時需要用frameLayout的5.在Android中幾種網(wǎng)絡(luò)編程的方式:(1)針對TCP/IP的Socket、ServerSocket(2)針對UDP的DatagramSocket、DatagramPackage。這里需要注意的是,考慮到Android設(shè)備通常是手持終端,IP都是隨著上網(wǎng)進(jìn)行分配的。不是固定的。因此開發(fā)也是有
一點與普通互聯(lián)網(wǎng)應(yīng)用有所差異的。(3)針對直接URL的HttpURLConnection(4)Google集成了ApacheHTTP客戶端,可使用HTTP進(jìn)行網(wǎng)絡(luò)編程。針對HTTP,Google集成了AppacheHttpcore和httpclient4版本,因此特別注意Android不支持
httpclient3.x系列,而且目前并不支持Multipart(MIME),需要自行添加httpmime.jar(5)使用WebService。Android可以通過開源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去實現(xiàn)Webservice(6)直接使用WebView視圖組件顯示網(wǎng)頁?;赪ebView進(jìn)行開發(fā),Google已經(jīng)提供了一個基于chrome-lite的Web瀏覽器,直接就可以進(jìn)行上網(wǎng)瀏覽網(wǎng)頁。6.
TranslateAnimation(floatfromXDelta,floattoXDelta,floatfromYDelta,floattoYDelta)這個是我們最常用的一個構(gòu)造方法,floatfromXDelta:這個參數(shù)表示動畫開始的點離當(dāng)前ViewX坐標(biāo)上的差值;floattoXDelta,這個參數(shù)表示動畫結(jié)束的點離當(dāng)前ViewX坐標(biāo)上的差值;floatfromYDelta,這個參數(shù)表示動畫開始的點離當(dāng)前ViewY坐標(biāo)上的差值;floattoYDelta)這個參數(shù)表示動畫開始的點離當(dāng)前ViewY坐標(biāo)上的差值;如果view在A(x,y)點那么動畫就是從B點(x+fromXDelta,y+fromYDelta)點移動到C點
(x+toXDelta,y+toYDelta)點.7.android提供了幾種在其他線程中訪問UI線程的方法。Activity.runOnUiThread(Runnable)View.post(Runnable)View.postDelayed(Runnable,long)HanlderAsyncTask(推薦使用)從網(wǎng)上獲取一個網(wǎng)頁,在一個TextView中將其源代碼顯示出來
package
org.unique.async;
import
java.io.ByteArrayOutputStream;
import
java.io.InputStream;
import
java.util.ArrayList;
import
org.apache.http.HttpEntity;
import
org.apache.http.HttpResponse;
import
org.apache.http.client.HttpClient;
import
org.apache.http.client.methods.HttpGet;
import
org.apache.http.impl.client.DefaultHttpClient;
import
android.app.Activity;
import
android.app.ProgressDialog;
import
android.content.Context;
import
android.content.DialogInterface;
import
android.os.AsyncTask;
import
android.os.Bundle;
import
android.os.Handler;
import
android.os.Message;
import
android.view.View;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
public
class
NetworkActivity
extends
Activity{
private
TextView
message;
private
Button
open;
private
EditText
url;
@Override
public
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.work);
message=
(TextView)
findViewById(R.id.message);
url=
(EditText)
findViewById(R.id.url);
open=
(Button)
findViewById(R.id.open);
open.setOnClickListener(new
View.OnClickListener()
{
public
void
onClick(View
arg0)
{
connect();
}
});
}
private
void
connect()
{
PageTask
task
=
new
PageTask(this);
task.execute(url.getText().toString());
}
class
PageTask
extends
AsyncTask<String,
Integer,
String>
{
//
可變長的輸入?yún)?shù),與AsyncTask.exucute()對應(yīng)
ProgressDialog
pdialog;
public
PageTask(Context
context){
pdialog
=
new
ProgressDialog(context,
0);
pdialog.setButton("cancel",
new
DialogInterface.OnClickListener()
{
public
void
onClick(DialogInterface
dialog,
int
i)
{
dialog.cancel();
}
});
pdialog.setOnCancelListener(new
DialogInterface.OnCancelListener()
{
public
void
onCancel(DialogInterface
dialog)
{
finish();
}
});
pdialog.setCancelable(true);
pdialog.setMax(100);
pdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pdialog.show();
}
@Override
protected
String
doInBackground(String...
params)
{
try{
HttpClient
client
=
new
DefaultHttpClient();
//
params[0]代表連接的url
HttpGet
get
=
new
HttpGet(params[0]);
HttpResponse
response
=
client.execute(get);
HttpEntity
entity
=
response.getEntity();
long
length
=
entity.getContentLength();
InputStream
is
=
entity.getContent();
String
s
=
null;
if(is
!=
null)
{
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream();
byte[]
buf
=
new
byte[128];
int
ch
=
-1;
int
count
=
0;
while((ch
=
is.read(buf))
!=
-1)
{
baos.write(buf,
0,
ch);
count
+=
ch;
if(length
>
0)
{
//
如果知道響應(yīng)的長度,調(diào)用publishProgress()更新進(jìn)度
publishProgress((int)
((count
/
(float)
length)
*
100));
}
//
讓線程休眠100ms
Thread.sleep(100);
}
s
=
new
String(baos.toByteArray());
}
//
返回結(jié)果
return
s;
}
catch(Exception
e)
{
e.printStackTrace();
}
return
null;
}
@Override
protected
void
onCancelled()
{
super.onCancelled();
}
@Override
protected
void
onPostExecute(String
result)
{
//
返回HTML頁面的內(nèi)容
message.setText(result);
pdialog.dismiss();
}
@Override
protected
void
onPreExecute()
{
//
任務(wù)啟動,可以在這里顯示一個對話框,這里簡單處理
message.setText(R.string.task_started);
}
@Override
protected
void
onProgressUpdate(Integer...
values)
{
//
更新進(jìn)度
System.out.println(""+values[0]);
message.setText(""+values[0]);
pdialog.setProgress(values[0]);
}
}
}8.Spinner不能用在dialog和tabhost中的解決辦法9.eclipse關(guān)聯(lián)JDK源碼(1).點“window”->"Preferences"->"Java"->"InstalledJRES"(2).此時"InstalledJRES"右邊是列表窗格,列出了系統(tǒng)中的JRE環(huán)境,選擇你的JRE,然后點邊上的"Edit...",會出現(xiàn)一個窗口(EditJRE)(3).選中rt.jar文件的這一項:“c:\programfiles\java\jre_1.5.0_06\lib\rt.jar”點左邊的“+”號展開它,(4).展開后,可以看到“SourceAttachment:(none)”,點這一項,點右邊的按鈕“SourceAttachment...”,選擇你的JDK目錄下的“src.zip”文件10.Unabletoopensyncconnection!把設(shè)置里的USB調(diào)試重啟11.EditText設(shè)置光標(biāo)位置問題EditText中有一些預(yù)置文本的時候,想把光標(biāo)調(diào)到最前面,一開始是使用的setSelection(0),結(jié)果發(fā)現(xiàn)在三星P1000上面有問題。經(jīng)過研究發(fā)現(xiàn)需要先調(diào)用EditText.requestFocus(),再調(diào)用setSelection(0)。否則的話,在2.x的機器上有問題,但3.x上面是好著的。12.Android中Home鍵被系統(tǒng)保留,無法象監(jiān)聽回退鍵一樣用onKeyDown,但是可以根據(jù)按下home鍵時會觸發(fā)的activity和view的一些事件來添加自己的處理代碼.網(wǎng)上有人說可以用onAttachWindow來攔截Home鍵,沒試過13.在用surfaceView渲染時,如果要想在需要時其中出現(xiàn)其他View,可以將surfaceView和其他View放在layout中,平常時可以將其他view隱藏14.使用android:imeOptinos可對Android自帶的軟鍵盤進(jìn)行一些界面上的設(shè)置:android:imeOptions="flagNoExtractUi"
//使軟鍵盤不全屏顯示,只占用一部分屏幕
同時,這個屬性還能控件軟鍵盤右下角按鍵的顯示內(nèi)容,默認(rèn)情況下為回車鍵
android:imeOptions="actionNone"
//輸入框右側(cè)不帶任何提示
android:imeOptions="actionGo"
//右下角按鍵內(nèi)容為'開始'
android:imeOptions="actionSearch"
//右下角按鍵為放大鏡圖片,搜索
android:imeOptions="actionSend"
//右下角按鍵內(nèi)容為'發(fā)送'
android:imeOptions="actionNext"
//右下角按鍵內(nèi)容為'下一步'
android:imeOptions="actionDone"
//右下角按鍵內(nèi)容為'完成'15.為TextView添加陰影<style
name="Overlay">
<item
name="android:paddingLeft">2dip</item>
<item
name="android:paddingBottom">2dip</item>
<item
name="android:textColor">#ffffff</item>
<item
name="android:textSiz
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030襄陽農(nóng)業(yè)機械行業(yè)產(chǎn)品需求與發(fā)展前景規(guī)劃分析報告
- 2025-2030融資租賃業(yè)利率市場化改革后的發(fā)展路徑
- 2025-2030蒸汽熨斗行業(yè)市場深度調(diào)研及發(fā)展趨勢和前景預(yù)測研究報告
- 2025-2030葡萄籽提取物行業(yè)健康市場投資分析政策影響供需格局分析研究報告
- 安全員A證考試押題模擬含答案詳解(研優(yōu)卷)
- 常德2025年湖南常德市石門縣衛(wèi)生健康系統(tǒng)招聘53人筆試歷年參考題庫附帶答案詳解
- 山東2025年山東桓臺縣事業(yè)單位專項招聘公費農(nóng)科生筆試歷年參考題庫附帶答案詳解
- 宿遷2025年江蘇蘇州宿遷工業(yè)園區(qū)校園招聘事業(yè)編制教師18人筆試歷年參考題庫附帶答案詳解
- 寶雞2025年陜西寶雞第一中學(xué)招聘教師30人筆試歷年參考題庫附帶答案詳解
- 寧波浙江寧波市鄞州區(qū)鐘公廟街道辦事處編外人員招聘筆試歷年參考題庫附帶答案詳解
- 口腔醫(yī)院會員中心
- 冬季交通安全測試題及答案解析
- 2025年國家能源局系統(tǒng)公務(wù)員面試模擬題及備考指南
- 脊柱感染護(hù)理
- 2025年安徽省中考化學(xué)真題及答案
- 危險品押運證考試題及答案
- 2025年黨建工作應(yīng)試題庫及答案
- 痤瘡皮膚護(hù)理常規(guī)
- 2025-2030中國自動分板設(shè)備自動PCB分板設(shè)備行業(yè)運行態(tài)勢與投資前景預(yù)測報告
- 2025年陜西省中考英語試卷(含解析)
- 2025至2030中國海綿新材料行業(yè)市場發(fā)展現(xiàn)狀及商業(yè)模式與投資發(fā)展報告
評論
0/150
提交評論