版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
线程实现客户端与服务器通信一、线程说明2一:在android中有两种实现线程thread的方法:一种是,扩展java.lang.Thread类另一种是,实现Runnable接口二:Thread类代表线程类,它的两个最主要的方法是:run()——包含线程运行时所执行的代码Start()——用于启动线程三:Handler机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。二、代码案例3主页面mian_activity.xml<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下载图片"
android:id="@+id/btn"/>
</LinearLayout>
二、代码案例4privatestaticButtonbtn;
privatestaticContextcontext;
privatestaticStringfilePath;
privatestaticBitmapmBitmap;
privatestaticStringmSaveMessage="失败";
privatefinalstaticStringTAG="PictureActivity";
privatestaticProgressDialogmSaveDialog=null;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
donwloadImg(MainActivity.this,"21:8080/photo/test.jpg");
}
});
}主页面MainActivity.java二、代码案例5
publicstaticvoiddonwloadImg(Contextcontexts,StringfilePaths){
context=contexts;
filePath=filePaths;
mSaveDialog=ProgressDialog.show(context,"保存图片","图片正在保存中,请稍等...",true);
newThread(saveFileRunnable).start();
}
privatestaticRunnablesaveFileRunnable=newRunnable(){
@Override
publicvoidrun(){
try{
if(!TextUtils.isEmpty(filePath)){//网络图片
//对资源链接
URLurl=newURL(filePath);
//打开输入流
InputStreaminputStream=url.openStream();
//对网上资源进行下载转换位图图片
mBitmap=BitmapFactory.decodeStream(inputStream);
inputStream.close();
}
saveFile(mBitmap);
mSaveMessage="图片保存成功!";
}catch(IOExceptione){
mSaveMessage="图片保存失败!";
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
messageHandler.sendMessage(messageHandler.obtainMessage());
}
};二、代码案例6
privatestaticHandlermessageHandler=newHandler(){
@Override
publicvoidhandleMessage(Messagemsg){
mSaveDialog.dismiss();
Log.d(TAG,mSaveMessage);
Toast.makeText(context,mSaveMessage,Toast.LENGTH_SHORT).show();
}
};
/**
*保存图片
*/
publicstaticvoidsaveFile(Bitmapbm)throwsIOException{
FiledirFile=newFile(Environment.getExternalStorageDirectory().getPath());
if(!dirFile.exists()){
dirFile.mkdir();
}
StringfileName=UUID.randomUUID().toString()+".jpg";
FilemyCaptureFile=newFile(Environment.getExternalStorageDirectory().getPath()+"/DCIM/Camera/"+fileName);
BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(myCaptureFile));
press(Bitmap.CompressFormat.JPEG,80,bos);
bos.flush();
bos.close();
//把图片保存后声明这个广播事件通知系统相册有新图片到来
Intentintent=newIntent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uriuri=Uri.fromFile(myCaptureFile);
intent.setData(uri);
context.sendBroadcast(intent);
}
}二、代码案例7<uses-permissionandroid:name="android.permission.INTERNET"></uses-perm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47154-2026水产种质资源描述通用要求
- 防腐木漆面施工方案设计
- 合格装修方案模板范本
- 库房节约费用方案范本
- 北京五星级宾馆施工方案
- 三明泳池工程施工方案
- 应急快艇定制方案范本
- 张家界办公大楼施工方案
- 加工中心竞标方案范本
- 眼科青光眼患者眼部按摩方法指导
- 2024婚内债务一方免责协议范本
- 新形势下粮食仓储管理工作实践与思考
- 相由心生豆扣袖课件
- 2024年苏教版四年级下册科学全册精编知识点
- GB/T 25423-2023方草捆打捆机
- 第三十届YMO青少年数学思维研学交流活动七年级复选试卷(含答案)
- 体育旅游课件第五章体育旅游目的地
- 滑坡地质灾害应急调查报告
- 制氢装置转化炉设计简介
- 线材基础知识
- LD 52-1994气瓶防震圈
评论
0/150
提交评论