Android中获取网络图片的步骤(如果手机缓存里面有就从缓存获取)
Androidä?-è??å ?ç,?ç?œå›?片的æ??æ??(å?‚æ?œæ‰‹æœºç,?å-?里é??有å??ä??ç,?å-?è??å ?)
æœ?è??å?,ä,œæ??è?ƒé??ï,Œé?,了ç??å…?å??çš„imac机å-?å-?iphoneå,?ï?
Œæœ‰å?…è??å??ä?,å‰?çš„é??ç›?里é??çš„éš?ç‚?è?›è?Œä??ä?‹æ??ç??了ï,Œå??äº?Androidå,?å??ä?-çš„éš?ç‚?ï,Œä??æ??ç,?ç?œè??å ?内å??çš„å,„ç
†ï,ŒäºŒæ??UIè??è??æ??é??ã?‚å??äº?æˆ?æ?,è??ï,Œç‰?åˆ?éº?çƒ?å??æ??UIè??è??æ??é??çš„ä?œè,?ï,Œå…?å??çš„å,?å??ä?,iphoneä?ºä??ï,Œæ??ç?Ÿé??æ??人的iphoneæ??å?Šæ??è?ƒé??ï,ˆé??å??ä??æ ,å,,åƒ?æ??å…?ç?ƒæœ?ä,?
çš„ï,‰ï,Œä?ºäº†æ??ä??iphoneçš„Tabbarï,Œç??TabActivity+ActivityGroupçš„å,„ç?†æ??å??ä??çŸ,é??出了å,šå??é??é??了ï,Œè??å,,éƒ,ä??ä??è?
?�了�
è??å ?ç,?ç?œå›?片的æ??æ??(å?‚æ?œæ‰‹æœºç,?å-?里é??有å??ä??ç,?å-?è??å ?)ï,Œæˆ?ä?,å‰?å†?çš„ï,Œæ??è?ƒå?Ÿå?‹ï,š
ImageView mImageView =
(ImageView)this.findViewById(R.id.imageview);
String imagePath = getImagePath(context, photoURL); // context:ä?Šä?‹æ?‡ ï,ŒphotoURLï,šå›?片的urlè??å?„
mImageView.setImageBitmap(BitmapFactory.decodeFile(imagePath));
getImagePath()æ??æ??ï,š
//
è??å ?ç,?ç?œå›?片ï,Œå?‚æ?œç,?å-?里é??有å??ä??ç,?å-?里é??è??å??
public static String getImagePath(Context context, String url) {
if(url == null )
return ;
String imagePath = ;
String fileName = ;
// è??å ?urlä?-å›?片的æ?‡ä??å??ä??å??ç,?
if(url!=null url.length()!=0){
fileName = url.substring(url.lastIndexOf( / )+1);
}
//
å›?片åœ?手机æœ?åœ?çš„å-?æ??è??å?„,æ??æ„?ï,šfileNameä?ºç?ºçš„情
况
imagePath = context.getCacheDir() + / + fileName;
Log.i(TAG, imagePath = + imagePath);
File file = new File(context.getCacheDir(),fileName);// ä??å-?æ?‡ä??,
if(!file.exists())
{
Log.i(TAG, file ä??å-?åœ? );
try {
byte[] data = readInputStream(getRequest(url));
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,
data.length);
bitmap.compress(CompressFormat.JPEG, 100, new FileOutputStream(
file));
imagePath = file.getAbsolutePath();
Log.i(TAG, imagePath : file.getAbsolutePath() = + imagePath);
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
return imagePath;
} // getImagePath( )ç??æ?Ÿã?‚
getRequest( ) æ??æ??ï,šç,?ç?œè??å ?å›?片ä?ºè??å…,了
public static InputStream getRequest(String path) throws Exception{
URL url = new URL(path);
HttpURLConnection conn =
(HttpURLConnection)url.openConnection();
conn.setRequestMethod( GET );
conn.setConnectTimeout(5000); // 5ç??
if(conn.getResponseCode() == 200){
return conn.getInputStream();
}
return null;
}
readInputStream( ) æ??æ??ï,šæŠŠè??å…,æµ?è,?åŒ?æˆ?二è?›åˆ?
public static byte[] readInputStream(InputStream inStream) throws
Exception{
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int len = 0;
while( (len = inStream.read(buffer)) != -1 ){
outSteam.write(buffer, 0, len);
}
outSteam.close();
inStream.close();
return outSteam.toByteArray();
}
1 æ?? 573842281 2012-03-21
æ??挕ä? ä??ä?‹ï,•
本文档为【Android中获取网络图片的步骤(如果手机缓存里面有就从缓存获取)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。