android使用ImageView加载本地SdCard图片和加载网络图片
android使用ImageView加载本地SdCard图片和加载网络图片
例子1:android加载自己文件夹的图片,使用R类
main.xml文件
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/longshuai"
/>
注意:强调一下,资源文件的图片命名规则比较严格,由[a-z]和数字和“_”组成,而且不能数字开头,我就常犯傻,命名老是数字或者大写字母开头,这种错误——囧。。
我们要把longshuai.png导入到res中,最简单的方式就是直接找到这个文件夹,复制进去
之后右键更新,我们就可以在res中看到自己的图片了
不用写代码。。直接用自动生成的代码。。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
效果如下:
2、加载本地图片(其实主要是SdCard中图片)
关于SdCard的使用,可以参见http://longshuai2007.blog.163.com/blog/static/1420944142011611103950500/
xml文件同上面的是一样的,并不需要修改
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView image1 = (ImageView) findViewById(R.id.iv1); //获得ImageView对象
/*为什么图片一定要转化为 Bitmap格式的!! */
Bitmap bitmap = getLoacalBitmap("/sdcard/tubiao.jpg"); //从本地取图片(在cdcard中获取) //
image1 .setImageBitmap(bitmap); //设置Bitmap
}
/**
* 加载本地图片
* @param url
* @return
*/
public static Bitmap getLoacalBitmap(String url) {
try {
FileInputStream fis = new FileInputStream(url);
return BitmapFactory.decodeStream(fis); ///把流转化为Bitmap图片
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
}
显示效果如下:
3、获取网络上的图片 mian.xml文件和1中一样,并不需要修改! 代码: public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView image1 = (ImageView) findViewById(R.id.iv1); Bitmap bitmap =getHttpBitmap("http://images.missyuan.com/attachments/day_071123/20071123_b2bfefe1ec56e2df6582vCGIZG81gbyM.png"); //从网上取图片
image1 .setImageBitmap(bitmap); //设置Bitmap } /**
* 从服务器取图片
* @param url
* @return
*/
public static Bitmap getHttpBitmap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setConnectTimeout(0);
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
} 注意:由于需要使用网络,所以 AndroidManfest.xml 文件需要添加使用网络权限!!!
更多相关文章
- 浅谈如何在Eclipse下的Android工程配置Git的.gitignore文件
- 源码分析android 系统framework(二)之view的布局加载流程
- Android遍历本地视频文件加过滤
- Android生成pdf文件之PdfDocument及踩过的坑
- Android(Java):jni写文件打印调试信息
- Android中的WebView进行直接加载网页(要注意解决权限问题)
- Android OpenCV实现图片叠加,水印
- Android配置----DDMS 连接真机(己ROOT),用file explore看不到data/
- 浅析Android下的Android.mk文件