android控件ImageView加载sdcard卡,网络及res中的图片

本文介绍了Android中如何使用ImageView加载res/drawable资源、SD卡中的图片以及网络上的图像资源。强调了加载网络图片时需要在后台线程执行,并推荐使用android-async-http库进行异步加载。
摘要由CSDN通过智能技术生成

提前声明

加载网络资源需要网络访问权限:

<uses-permission android:name="android.permission.INTERNET" />

加载sd卡中的资源则需要权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


不然,  不然 , 代码正确,但一直会抛异常哟  因为没权限呀 没权限

效果图:





一:

先说访问res/drawable/下的图片的访问方法中,因为这种最简单,getResources()是Context的方法。

myPic.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher));


二:

访问本地SD卡中的图片

				String path=Environment.getExternalStorageDirectory().toString()+"/aa.jpg";
				Bitmap bitmap = getLoacalBitmap(path); //从本地取图片

三:

访问网络上的图片资源

这种情况下,要注意一下,android不允许在 在跟界面操作所在的线程中加入会导致程序反应迟钝的操作,譬如上网加载网上的数据,这些操作,要实现就一定得放到其他线程中去执行。这里,为了简便起见,咱们就直接用网上的async-http开源框架好了,内部实现原理就是开线程专门加载资源,加载完再反馈界面主线程。

操作起来还算简单,记得下载android-async-http-1.4.6.jar包,我用的1.4.6  后面的版本会出点问题。

				String url="http://img.club.pchome.net/upload/club/other/2015/6/24/pics_kdsxxoo_1435102809.jpg";
				AsyncHttpClient client=new AsyncHttpClient();
				
	            client.get(url, new AsyncHttpResponseHandler(){  
	                @Override  
	                public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {  
	                    if(statusCode==200){  
	                        BitmapFactory factory=new BitmapFactory();  
	                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值