您的位置:首页 > 理论基础 > 计算机网络

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" />

这也是我为什么一直错,而且一直找不到原因,它就是不显示图片,什么错误都没有,坑爹啊!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: