例子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中看到自己的图片了

android使用ImageView加载本地SdCard图片和加载网络图片 - 夏天的风 - FreeSimpleHappy

 

不用写代码。。直接用自动生成的代码。。

     public void onCreate(Bundle savedInstanceState)

    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

      }

效果如下:

android使用ImageView加载本地SdCard图片和加载网络图片 - 夏天的风 - FreeSimpleHappy

 

 

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;
         }
    }

 

显示效果如下:

android使用ImageView加载本地SdCard图片和加载网络图片 - 夏天的风 - FreeSimpleHappy
 
 
3、获取网络上的图片
mian.xml文件和1中一样,并不需要修改!
 
代码:
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        ImageView image1 = (ImageView) findViewById(R.id.iv1);
                       //从网上取图片
        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图片和加载网络图片 - 夏天的风 - FreeSimpleHappy
 
posted on 2013-04-21 16:08 姚先进 阅读(621) 评论(2)  编辑  收藏
Comments
  • # re: android使用ImageView加载本地SdCard图片和加载网络图片
    luoshuisanqian
    Posted @ 2016-04-11 15:59
    你导包正确吗,我试过那段代码了没问题啊,可以加载网络图片  回复  更多评论   
  • # re: android使用ImageView加载本地SdCard图片和加载网络图片
    luoshuisanqian
    Posted @ 2016-04-11 16:02
    HttpURLConnection这个类你是导这个包吗java.net.HttpURLConnection
      回复  更多评论   

只有注册用户登录后才能发表评论。


网站导航: