Android - 小功能 使用ImageView加载本地SdCard图片和加载网络图片
2014-04-16 14:09
891 查看
例子1:android加载自己文件夹的图片,使用R类
main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/iv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/longshuai" <!-- longshuai.png为图片的名称,记在资源文件里头,不用文件名后缀-->
/>
</LinearLayout>
注意:强调一下,资源文件的图片命名规则比较严格,由[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 文件需要添加使用网络权限!!!
<uses-permission android:name="android.permission.INTERNET" />
这也是我为什么一直错,而且一直找不到原因,它就是不显示图片,什么错误都没有,坑爹啊!!
main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/iv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/longshuai" <!-- longshuai.png为图片的名称,记在资源文件里头,不用文件名后缀-->
/>
</LinearLayout>
注意:强调一下,资源文件的图片命名规则比较严格,由[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 文件需要添加使用网络权限!!!
<uses-permission android:name="android.permission.INTERNET" />
这也是我为什么一直错,而且一直找不到原因,它就是不显示图片,什么错误都没有,坑爹啊!!
相关文章推荐
- android使用ImageView加载本地SdCard图片和加载网络图片
- android使用ImageView加载本地SdCard图片和加载网络图片
- android使用ImageView加载本地SdCard图片和加载网络图片
- 在Android中ImageView无法显示加载的本地SDCard图片。
- Android 加载网络图片并下载至本地SdCard
- Android 中网络图片加载(包括本地图片的加载) 框架 universal image loader 的简单使用
- android WebView 控件加载本地sdcard中html文件图片的问题
- android WebView 控件加载本地sdcard中html文件图片的问题
- Android第三方框架universal-image-loader[图片缓存加载]及其OOM问题处理【常用】,CardView使用[给列表中项+边框]
- Android ImageView如何加载网络和本地图片资源
- android加载网络上的图片-使用SmartImageView
- 在android中使用ImageLoder加载网络图片时,将图片设置为ImageView的背景
- Android开发实现加载网络图片并下载至本地SdCard的方法
- Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
- android控件ImageView加载sdcard卡,网络及res中的图片
- Android webView 加载网页时,使用本地图片替换网页内的图片
- RxAndroid和RxJava结合OkGo示例请求网络图片加载到不同ImageView
- Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
- 使用SDWebImage加载网络图片
- Android使用ImageView显示网络图片