Android开发中15条小经验,移动端页面开发模版

(2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有 一点与普通互联网应用有所差异的。

(3)针对直接UR

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

L的HttpURLConnection

(4)Google集成了Apache HTTP客户端,可使用HTTP进行网络编程。针对HTTP,Google集成了Appache Http core和httpclient 4版本,因此特别注意Android不支持 httpclient 3.x系列,而且目前并不支持Multipart(MIME),需要自行添加httpmime.jar

(5)使用Web Service。Android可以通过开源包如Jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去实现Webservice

(6) 直接使用WebView视图组件显示网页。基于WebView 进行开发,Google已经提供了一个基于chrome-lite的Web浏览器,直接就可以进行上网浏览网页。

6. TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

这个是我们最常用的一个构造方法,

float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;

float toXDelta:这个参数表示动画结束的点离当前View X坐标上的差值;

float fromYDelta: 这个参数表示动画开始的点离当前View Y坐标上的差值;

float toYDelta:这个参数表示动画开始的点离当前View Y坐标上的差值;

如果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 )

从网上获取一个网页,在一个TextView中将其源代码显示出来

packageorg.unique.async;

importjava.io.ByteArrayOutputStream;

importjava.io.InputStream;

importjava.util.ArrayList;

importorg.apache.http.HttpEntity;

importorg.apache.http.HttpResponse;

importorg.apache.http.client.HttpClient;

importorg.apache.http.client.methods.HttpGet;

importorg.apache.http.impl.client.DefaultHttpClient;

importandroid.app.Activity;

importandroid.app.ProgressDialog;

importandroid.content.Context;

importandroid.content.DialogInterface;

importandroid.os.AsyncTask;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.view.View;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.TextView;

publicclassNetworkActivityextendsActivity{

privateTextViewmessage;

privateButtonopen;

privateEditTexturl;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.network);

message=(TextView)findViewById(R.id.message);

url=(EditText)findViewById(R.id.url);

open=(Button)findViewById(R.id.open);

open.setOnClickListener(newView.OnClickListener(){

publicvoidonClick(Viewarg0){

connect();

}

});

}

privatevoidconnect(){

PageTasktask=newPageTask(this);

task.execute(url.getText().toString());

}

classPageTaskextendsAsyncTask<String,Integer,String>{

//可变长的输入参数,与AsyncTask.exucute()对应

ProgressDialogpdialog;

publicPageTask(Contextcontext){

pdialog=newProgressDialog(context,0);

pdialog.setButton(“cancel”,newDialogInterface.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,inti){

dialog.cancel();

}

});

pdialog.setOnCancelListener(newDialogInterface.OnCancelListener(){

publicvoidonCancel(DialogInterfacedialog){

finish();

}

});

pdialog.setCancelable(true);

pdialog.setMax(100);

pdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

pdialog.show();

}

@Override

protectedStringdoInBackground(String…params){

try{

HttpClientclient=newDefaultHttpClient();

//params[0]代表连接的url

HttpGetget=newHttpGet(params[0]);

HttpResponseresponse=client.execute(get);

HttpEntityentity=response.getEntity();

longlength=entity.getContentLength();

InputStreamis=entity.getContent();

Strings=null;

if(is!=null){

ByteArrayOutputStreambaos=newByteArrayOutputStream();

byte[]buf=newbyte[128];

intch=-1;

intcount=0;

while((ch=is.read(buf))!=-1){

baos.write(buf,0,ch);

count+=ch;

if(length>0){

//如果知道响应的长度,调用publishProgress()更新进度

publishProgress((int)((count/(float)length)*100));

}

//让线程休眠100ms

Thread.sleep(100);

}

s=newString(baos.toByteArray());

}

//返回结果

returns;

}catch(Exceptione){

e.printStackTrace();

}

returnnull;

}

@Override

protectedvoidonCancelled(){

super.onCancelled();

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值